Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggunakan Pertanyaan LIKE dengan Parameter PDO dengan betul?

Bagaimana untuk Menggunakan Pertanyaan LIKE dengan Parameter PDO dengan betul?

DDD
DDDasal
2024-12-03 01:12:10168semak imbas

How to Correctly Use LIKE Queries with PDO Parameters?

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!

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