urlencode()
không có gì để làm với SQL, vì vậy nó có thể ngăn chặn việc tiêm SQL giống như dầu hỏa để làm cho bánh mì kẹp thịt của bạn ngon hơn. Bên cạnh đó, mọi thứ đi vào cơ sở dữ liệu của bạn sẽ được mã hóa URL, sau đó bạn phải giải mã nếu bạn muốn làm bất cứ điều gì hữu ích với chúng sau khi truy xuất cơ sở dữ liệu.
Mặt khác, việc loại bỏ các truy vấn của bạn sẽ giúp ứng dụng của bạn bảo vệ khỏi việc chèn SQL và không hơn thế nữa. Nó không sửa đổi dữ liệu bạn nhập vào các truy vấn của mình; nó chỉ bảo vệ các truy vấn của bạn khỏi bị giả mạo. Đó là ý tưởng về SQL injection và đó cũng là lý do tại sao việc mã hóa URL cho dữ liệu của bạn không làm được gì để bảo vệ khỏi nó. Được, nó không chuyển dấu nháy đơn của bạn '
thành %27
, khiến chúng trở nên vô hại, nhưng như đã đề cập trong đoạn trên, bạn sẽ phải URL giải mã chúng thành dấu nháy đơn để sử dụng chúng.
Sử dụng đúng công cụ, đúng mục đích. Đặc biệt trong năm 2011, bạn nên sử dụng các câu lệnh đã chuẩn bị sẵn thay vì thoát theo cách thủ công các biến truy vấn của mình và nối các chuỗi để tạo thành các truy vấn.