Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan Pertanyaan LIKE dengan Pemegang Tempat dalam PDO?

Bagaimana untuk Melaksanakan Pertanyaan LIKE dengan Pemegang Tempat dalam PDO?

Susan Sarandon
Susan Sarandonasal
2024-11-12 01:34:03390semak imbas

How to Implement LIKE Queries with Placeholders in PDO?

Laksanakan LIKE Query dalam PDO

Apabila bekerja dengan pertanyaan LIKE dalam PDO, adalah penting untuk memahami cara menggabungkan ruang letak dan mengikat pembolehubah dengan betul. Artikel ini menangani masalah yang dihadapi oleh pengguna yang melaksanakan pertanyaan LIKE dalam PDO, yang mana pertanyaan mereka gagal mengembalikan hasil.

Pertanyaan asal, seperti yang disediakan oleh pengguna, cuba menggunakan ruang letak dengan tanda peratusan yang dilampirkan:

$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
$params = array($var1, $var2);

Walau bagaimanapun, pendekatan ini tidak betul. Tanda peratusan harus dimasukkan dalam pembolehubah bind, bukan dalam pertanyaan itu sendiri:

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";
$params = array("%$var1%", "%$var2%");

Dengan melampirkan nilai pembolehubah dengan tanda peratusan dalam pembolehubah bind, pertanyaan yang dihasilkan memastikan klausa LIKE akan mencari alamat yang mengandungi perkataan yang ditentukan. Tanpa pelarasan ini, pertanyaan akan menghasilkan sesuatu seperti:

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'

Pertanyaan ini akan gagal kerana tanda peratusan dibenamkan dalam petikan, menyebabkan carian mencari alamat yang mengandungi teks tepat "foo" atau " bar", bukan perkataan yang mengandungi istilah tersebut.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan LIKE dengan Pemegang Tempat dalam PDO?. 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