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?