Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul untuk Pertanyaan SEPERTI MySQL?

Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul untuk Pertanyaan SEPERTI MySQL?

Susan Sarandon
Lepaskan: 2024-10-31 02:05:29
asal
428 orang telah melayarinya

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

Penyata PHP PDO Disediakan: MySQL LIKE Query

Apabila melakukan pertanyaan LIKE menggunakan kelas PDO PHP, adalah penting untuk mengendalikan operator LIKE dengan betul dan sediakan pernyataan dengan betul.

Masalah: Dalam kod yang disediakan, pertanyaan asal berfungsi menggunakan klien MySQL tetapi menghadapi masalah apabila dipindahkan ke PHP.

Penyelesaian: Ralat terletak pada klausa WHERE dalam kaedah penyediaan. Baris berikut adalah salah:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '"%' . $searchTerm . '"%'));
$ret = $prep->execute(array(':searchTerm' => "%:searchTerm%"));
$ret = $prep->execute(array(':searchTerm' => ':' . $searchTerm . '%'));</code>
Salin selepas log masuk

Penjelasan:

  • Pernyataan yang disediakan: Mereka mengangkut data secara berasingan daripada pertanyaan, membuat petikan yang tidak diperlukan semasa membenamkan nilai.
  • LIKE operator: Memerlukan aksara kad bebas, seperti % atau _, untuk mewakili jujukan aksara arbitrari.
  • Pertanyaan yang betul: Klausa WHERE yang betul hendaklah:
<code class="php">WHERE hs.hs_text LIKE :searchTerm</code>
Salin selepas log masuk

Dan pernyataan yang disediakan hendaklah dilaksanakan seperti berikut:

<code class="php">$ret = $prep->execute(array(':searchTerm' => '%' . $searchTerm . '%'));</code>
Salin selepas log masuk

Sekarang, pertanyaan harus mengembalikan hasil yang diingini .

Atas ialah kandungan terperinci Bagaimana Menggunakan Pernyataan PDO yang Disediakan dengan betul untuk Pertanyaan SEPERTI MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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