Pernyataan yang disiapkan tidak luput dari apa pun. Saat Anda menyiapkan pernyataan, kueri Anda akan dikompilasi sebelumnya, sehingga hanya membutuhkan placeholder ( ?
) untuk diisi. Karena tidak ada cara untuk mengubah SQL dari kueri yang telah dikompilasi, tidak diperlukan pelolosan.
Untuk memperbaikinya, keluar dari %
dan _
secara manual.
Ditambahkan:
Sedikit alasan yang masuk akal:Dalam kasus Anda, ketika pengguna memasukkan %
ke dalam kotak telusur, $search
. Anda variabel berisi string %%%
. Bagaimana MySQL tahu, yang %
itu harus melarikan diri, dan mana yang harus ditinggalkan?