Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengelakkan pertanyaan yang salah apabila menggunakan LIKE dalam PDO?
Melaksanakan Pertanyaan LIKE dengan Betul dalam PDO
Apabila cuba melaksanakan pertanyaan LIKE dalam PDO, adalah penting untuk memastikan sintaks yang betul untuk mendapatkan hasil yang tepat . Dalam pertanyaan yang diberikan, isunya terletak pada peletakan % aksara kad bebas.
Sintaks yang betul untuk pertanyaan SUKA dalam PDO ialah memasukkan tanda % dalam tatasusunan $params, bukannya pertanyaan itu sendiri. Berikut ialah contoh:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
Jika tanda % dimasukkan dalam tatasusunan $params, pertanyaan yang dijana akan kelihatan seperti berikut:
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Walau bagaimanapun, dalam pertanyaan asal yang disediakan , tanda % dimasukkan dalam pertanyaan itu sendiri:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
Apabila pertanyaan dilaksanakan, yang disediakan pernyataan memetik nilai dalam rentetan yang telah dipetik, mengakibatkan pertanyaan yang salah. Dengan mengalihkan tanda % ke tatasusunan $params, pertanyaan yang dimaksudkan akan dilaksanakan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk mengelakkan pertanyaan yang salah apabila menggunakan LIKE dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!