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

Susan Sarandon
Lepaskan: 2024-10-31 02:05:29
asal
337 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!

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