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

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

Mary-Kate Olsen
Lepaskan: 2024-12-09 19:50:16
asal
423 orang telah melayarinya

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

Penyata PHP PDO Disediakan -- MySQL LIKE Query

Pernyataan yang disediakan PDO menawarkan cara yang selamat dan cekap untuk melaksanakan pertanyaan SQL dengan parameter dinamik. Apabila bekerja dengan pertanyaan MySQL LIKE, menggunakan sintaks yang betul adalah penting.

Soalan:

Seorang pembangun menghadapi cabaran dalam melaksanakan pertanyaan MySQL LIKE menggunakan PDO dalam PHP, walaupun pertanyaan berfungsi dengan betul dalam klien MySQL. Kod gagal mengembalikan hasil dan pelbagai variasi sintaks telah dicuba tidak berjaya.

Jawapan:

Sintaks yang salah dalam kod terletak dalam penyata sediakan dan laksana . Isunya ialah penggunaan petikan berganda yang tidak perlu dan pengikatan parameter yang salah. Berikut ialah kod yang diperbetulkan:

$sql = 'SELECT   hs.hs_pk, 
          hs.hs_text, 
          hs.hs_did, 
          hd.hd_did, 
          hd.hd_text, 
          hv.hv_text, 
          hc.hc_text 
FROM      hs 
LEFT JOIN hd 
 ON       hs.hs_did = hd.hd_did 
LEFT JOIN hd 
 ON       hd.hd_vid = hv.hv_id 
LEFT JOIN hc 
 ON       hd.hd_pclass = hc.hc_id
WHERE     hs.hs_text LIKE :searchTerm
LIMIT 25';

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

Penjelasan:

Pernyataan yang disediakan berfungsi dengan menghantar pertanyaan ke pangkalan data tanpa sebarang nilai parameter yang dibenamkan di dalamnya. Parameter dihantar secara berasingan untuk diikat oleh enjin pangkalan data. Menambah petikan berganda pada nilai parameter dalam pernyataan laksana adalah tidak betul kerana PDO akan menyertakan nilai parameter secara automatik dalam petikan jika diperlukan.

Selain itu, pengendali LIKE memerlukan peratusan di sekeliling istilah carian untuk membenarkan padanan separa. Dalam kod yang salah, istilah carian tidak dibatasi dengan betul dengan petikan berganda dan bukannya tanda peratusan yang diperlukan.

Dengan membetulkan ralat sintaks ini, pernyataan yang disediakan PDO boleh digunakan untuk berjaya melaksanakan pertanyaan MySQL LIKE.

Atas ialah kandungan terperinci Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul untuk 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