Laksanakan LIKE Query dalam PDO
Dalam PDO, apabila menggunakan operator LIKE, adalah penting untuk memasukkan tanda % dalam parameter, bukan dalam pertanyaan itu sendiri. Ini kerana kenyataan yang disediakan PDO merangkum nilai dalam petikan, yang boleh mengganggu % pemegang tempat.
Sebagai contoh, pertimbangkan pertanyaan berikut:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2);
Apabila pertanyaan ini disediakan, % tanda-tanda akan dirangkumkan dalam petikan, menghasilkan pertanyaan seperti ini:
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Oleh itu, pertanyaan tidak akan mengembalikan sebarang hasil kerana petikan berganda mengganggu kefungsian pengendali LIKE yang dimaksudkan.
Untuk membetulkan isu ini, tanda % harus disertakan dalam parameter sebaliknya:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%");
Dengan pengubahsuaian ini, pertanyaan yang disediakan akan mencari dengan betul alamat yang mengandungi $var1 atau $var2.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Operator LIKE dengan Parameter dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!