urlencode()
tidak memiliki tidak ada hubungannya dengan SQL, sehingga mencegah injeksi SQL sama seperti minyak tanah untuk membuat burger Anda lebih enak. Selain itu, semua yang masuk ke basis data Anda akan berakhir dengan penyandian URL, yang kemudian harus Anda dekode jika Anda ingin melakukan sesuatu yang berguna dengannya setelah mengambil basis data.
Melarikan diri dari kueri Anda, di sisi lain, membantu aplikasi Anda untuk menjaga terhadap injeksi SQL, dan tidak lebih. Itu tidak mengubah data Anda memasukkan pertanyaan Anda; itu hanya melindungi kueri Anda dari dirusak. Itulah ide injeksi SQL, dan itu juga mengapa URL yang mengkodekan data Anda tidak melakukan apa pun untuk melindunginya. Memang, memang ubah apostrof Anda '
ke %27
, menjadikannya tidak berbahaya, tetapi seperti yang disebutkan dalam paragraf di atas, Anda harus mendekode URL kembali menjadi apostrof untuk menggunakannya.
Gunakan alat yang tepat untuk tujuan yang benar. Khususnya di tahun 2011, Anda harus menggunakan pernyataan yang telah disiapkan alih-alih secara manual keluar dari variabel kueri Anda dan menggabungkan string untuk membentuk kueri.