Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggunakan Pertanyaan LIKE dengan Parameter PDO dengan betul?
Menggunakan Pertanyaan LIKE dalam PDO
Apabila cuba melaksanakan pertanyaan LIKE dalam PDO, anda mungkin menghadapi masalah seperti yang diterangkan dalam pertanyaan di bawah :
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2); $stmt = $handle->prepare($query); $stmt->execute($params);
Pertanyaan ini berkemungkinan tidak akan mengembalikan hasil, walaupun $var1 dan $var2 mengandungi perkataan carian yang sah. Ralat terletak pada kemasukan % tanda yang salah.
Untuk menggunakan LIKE dalam PDO dengan betul, tanda % harus disertakan dalam tatasusunan $params, bukan dalam pertanyaan itu sendiri. Berikut ialah kod yang diperbetulkan:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
Dengan melampirkan pembolehubah dalam % tanda dalam tatasusunan $params, anda memastikan bahawa % aksara digantikan ke dalam pertanyaan dengan betul. Tanpa pengubahsuaian ini, pernyataan yang disediakan oleh PDO akan menganggap % tanda sebagai sebahagian daripada nilai rentetan literal, mengakibatkan pertanyaan yang salah.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Pertanyaan LIKE dengan Parameter PDO dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!