Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengikat Nilai LIKE dengan Sambungan PDO?

Bagaimana untuk Mengikat Nilai LIKE dengan Sambungan PDO?

DDD
DDDasal
2024-11-16 15:28:03961semak imbas

How to Bind LIKE Values with the PDO Extension?

Mengikat Nilai LIKE dengan Sambungan PDO

Apabila bekerja dengan pertanyaan LIKE, adalah penting untuk mempertimbangkan cara mengikat nilai pembolehubah menggunakan sambungan PDO . Watak kad bebas '%', apabila diletakkan pada penghujung rentetan carian, boleh memberikan beberapa cabaran.

Dalam pertanyaan yang disediakan:

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

Persoalan timbul mengenai cara mengikat Pembolehubah ${partial} dengan PDO. Perlu mempertimbangkan tiga pilihan:

Pilihan 1: Ikat dengan '%' pada penghujung

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

Dalam pilihan ini, parameter :separa terikat pada nilai $partial="somet", mengekalkan '%' pada penghujungnya.

Pilihan 2: Ikat tanpa '%' pada penghujung

select wrd from tablename WHERE wrd LIKE ':partial'

Dalam pilihan ini, :partial terikat kepada $partial="somet%", dengan berkesan mempunyai '%' tetap pada penghujung rentetan carian.

Pilihan 3: Gunakan CONCAT MySQL fungsi

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

Pilihan ini membenarkan penyatuan istilah carian dan '%' dilakukan dalam MySQL sendiri.

Selain itu, jika istilah carian yang anda cari mungkin mengandungi aksara dengan makna istimewa dalam operator LIKE, seperti '%', '_' atau '', pendekatan yang lebih kompleks menggunakan melarikan diri rentetan diperlukan:

$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);

Atas ialah kandungan terperinci Bagaimana untuk Mengikat Nilai LIKE dengan Sambungan 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