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
Lepaskan: 2024-11-29 16:38:11
asal
964 orang telah melayarinya

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));
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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');
Salin selepas log masuk
$searchTerm = '%value%';
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => $searchTerm));
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Penyelesaian

Untuk menyelesaikan isu ini, gunakan kod berikut:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan