Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengikat Nilai dengan Baik dengan Operator LIKE dalam PDO?

Bagaimana untuk Mengikat Nilai dengan Baik dengan Operator LIKE dalam PDO?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-14 11:10:01198semak imbas

How to Properly Bind Values with LIKE Operator in PDO?

Ikat Nilai LIKE dengan Sambungan PDO

Dalam pertanyaan pangkalan data menggunakan operator LIKE, adalah penting untuk mengikat nilai dengan betul untuk mengelakkan serangan suntikan SQL. Apabila berurusan dengan pertanyaan LIKE yang melibatkan aksara kad bebas (% atau _) pada akhirnya, memahami teknik pengikatan yang sesuai adalah penting.

Mari kita pertimbangkan contoh pertanyaan:

select wrd from tablename WHERE wrd LIKE '$partial%'

Di sini, kami mahu untuk mengikat pembolehubah $partial menggunakan PDO. Cara yang betul untuk melakukan ini ialah:

select wrd from tablename WHERE wrd LIKE :partial

di mana :partial terikat kepada $partial dengan nilai "somet%" (dengan kad bebas mengekor). Ini memastikan pertanyaan mencari perkataan yang sepadan dengan sesetengahnya diikuti oleh sebarang bilangan aksara.

Sebagai alternatif, anda boleh menggunakan:

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

untuk melaksanakan gabungan kad bebas dalam MySQL dan bukannya pernyataan PDO .

Walau bagaimanapun, jika perkataan separa yang anda cari mungkin mengandungi aksara kad bebas (% atau _) atau garis miring ke belakang, mekanisme pelarian tambahan mungkin diperlukan dalam penyediaan PDO dan pengikatan parameter.

Atas ialah kandungan terperinci Bagaimana untuk Mengikat Nilai dengan Baik dengan Operator LIKE dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn