Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengikat Operator LIKE dengan Watak Khas dalam PDO dengan betul?
Mengikat nilai LIKE dengan PDO boleh mengelirukan kerana penggunaan aksara khas ('%' dan '_') dalam corak padanan. Dalam pertanyaan khusus ini:
SELECT wrd FROM tablename WHERE wrd LIKE '$partial%'
Terdapat beberapa pilihan untuk mengikat rentetan separa '$partial%':
SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'
Di sini, parameter ':partial' terikat kepada '$partial="somet"', menambahkan kad bebas '%' pada hujung rentetan.
SELECT wrd FROM tablename WHERE wrd LIKE ':partial'
Dalam kes ini, parameter ' :partial' terikat kepada '$partial="somet%"', yang termasuk aksara kad bebas dalam terikat nilai.
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Pilihan ini membolehkan anda melakukan penggabungan rentetan dalam pertanyaan MySQL, sebaliknya daripada dalam kod PHP.
Pengendalian Istimewa Aksara
Jika rentetan separa mengandungi aksara khas seperti '%', '_' atau '', kaedah yang lebih kompleks diperlukan untuk melepaskannya dengan betul. Berikut ialah contoh:
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
Dalam kod ini, aksara khas digantikan dengan jujukan melarikan diri (' ', ' %' dan ' _') untuk memastikan ia ditafsirkan dengan betul oleh MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Operator LIKE dengan Watak Khas dalam PDO dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!