Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul dengan MySQL LIKE Queries dalam PHP?

Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul dengan MySQL LIKE Queries dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 16:38:11963semak imbas

How to Correctly Use PDO Prepared Statements with MySQL LIKE Queries in PHP?

Penyata PHP PDO Disediakan -- MySQL LIKE Query

Apabila bekerja dengan PDO yang disediakan pernyataan dalam PHP, melaksanakan pertanyaan LIKE menggunakan pemacu MySQL boleh mencabar. Artikel ini akan meneroka sintaks yang diperlukan dan menyediakan penyelesaian untuk membantu pembangun dalam menyelesaikan sebarang isu yang mungkin mereka hadapi.

Perumusan Masalah

Seorang pembangun sedang cuba melaksanakan carian pertanyaan menggunakan pemacu MySQL PDO. Pertanyaan berfungsi dengan sempurna apabila dilaksanakan terus melalui klien MySQL, tetapi ia gagal mengembalikan sebarang hasil apabila dilaksanakan menggunakan PHP.

Sintaks Penyata Disediakan PDO untuk MySQL LIKE Query

Tidak seperti penggantian rentetan, pernyataan yang disediakan dalam PHP PDO mengangkut data secara berasingan daripada pertanyaan. Oleh itu, anda harus mengelak daripada menggunakan petikan berganda atau petikan tunggal apabila mengikat nilai pada pernyataan SUKA. Sintaks yang betul untuk mengikat nilai kepada pernyataan LIKE dalam PHP PDO adalah seperti berikut:

$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));

Percubaan Salah

Sintaks berikut yang dicuba oleh pembangun adalah tidak betul dan tidak akan menghasilkan yang diingini keputusan:

$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '%"', '1');
$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));

Penyelesaian

Untuk menyelesaikan isu ini, gunakan kod berikut:

$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));

Penjelasan

Pernyataan yang disediakan dalam PDO tidak hanya melakukan penggantian rentetan. Sebaliknya, mereka mengendalikan data secara berasingan daripada pertanyaan. Petikan diperlukan hanya apabila membenamkan nilai ke dalam pertanyaan itu sendiri. Dengan mengecualikan petikan dalam pengikatan pernyataan yang disediakan, PDO dapat mengangkut rentetan '%value%' dengan betul ke pangkalan data untuk digunakan dalam perbandingan LIKE.

Atas ialah kandungan terperinci Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul dengan MySQL LIKE Queries dalam PHP?. 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