Menggunakan LIKE dengan BindParam dalam Pertanyaan PDO MySQL dengan betul
Apabila cuba melakukan carian LIKE dengan bindParam dalam pertanyaan PDO MySQL, adalah penting untuk digunakan sintaks yang betul untuk memastikan hasil yang tepat.
Sintaks Dioptimumkan
Untuk memadankan nama pengguna bermula dengan "a" menggunakan bindParam, sintaks yang betul ialah:
$term = "a%";
Sebaliknya, sintaks yang disediakan dalam soalan asal, "$term = "'$term%'", adalah tidak betul kerana ia meletakkan petikan tunggal dalaman yang tidak perlu di sekitar nilai $term, yang akan mengakibatkan pencarian 'a% ' bukannya a%.
Peranan bindParam
bindParam bertanggungjawab untuk memetik data rentetan secara automatik apabila ia dimasukkan ke dalam pernyataan SQL Oleh itu, menambahkan petikan tunggal secara manual tidak diperlukan dan boleh membawa kepada hasil yang salah.
Kod Disemak
Menggunakan sintaks yang dioptimumkan, kod yang disemak semula ialah:
$term = "a%"; $sql = "SELECT username FROM `user` WHERE username LIKE :term LIMIT 10"; $core = Connect::getInstance(); $stmt = $core->dbh->prepare($sql); $stmt->bindParam(':term', $term, PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetchAll();
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan LIKE dengan BindParam dengan betul dalam Pertanyaan PDO MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!