Heim > Datenbank > MySQL-Tutorial > Wie verwende ich PDO-vorbereitete Anweisungen für MySQL-LIKE-Abfragen in PHP korrekt?

Wie verwende ich PDO-vorbereitete Anweisungen für MySQL-LIKE-Abfragen in PHP korrekt?

Mary-Kate Olsen
Freigeben: 2024-12-09 19:50:16
Original
423 Leute haben es durchsucht

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

PHP PDO Prepared Statement – ​​MySQL LIKE Query

PDO Prepared Statements bieten eine sichere und effiziente Möglichkeit, SQL-Abfragen mit dynamischen Parametern auszuführen. Bei der Arbeit mit MySQL-LIKE-Abfragen ist die Verwendung der richtigen Syntax von entscheidender Bedeutung.

Frage:

Trotzdem steht ein Entwickler bei der Ausführung einer MySQL-LIKE-Abfrage mit PDO in PHP vor Herausforderungen Die Abfrage funktioniert im MySQL-Client ordnungsgemäß. Der Code gibt keine Ergebnisse zurück und verschiedene Syntaxvarianten wurden erfolglos ausprobiert.

Antwort:

Die falsche Syntax im Code liegt in den Anweisungen „prepare“ und „execute“. . Das Problem ist die unnötige Verwendung doppelter Anführungszeichen und die falsche Parameterbindung. Hier ist der korrigierte Code:

$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.'%'));
Nach dem Login kopieren

Erklärung:

Vorbereitete Anweisungen funktionieren, indem sie die Abfrage an die Datenbank senden, ohne dass darin Parameterwerte eingebettet sind. Die Parameter werden separat gesendet, um von der Datenbank-Engine gebunden zu werden. Das Hinzufügen doppelter Anführungszeichen zum Parameterwert in der Ausführungsanweisung ist falsch, da PDO den Parameterwert bei Bedarf automatisch in Anführungszeichen setzt.

Zusätzlich erfordert der LIKE-Operator Prozentsätze um den Suchbegriff, um teilweise Übereinstimmungen zu ermöglichen. Im falschen Code wird der Suchbegriff fälschlicherweise durch doppelte Anführungszeichen anstelle der erforderlichen Prozentzeichen begrenzt.

Durch die Korrektur dieser Syntaxfehler kann die PDO-vorbereitete Anweisung verwendet werden, um MySQL-LIKE-Abfragen erfolgreich auszuführen.

Das obige ist der detaillierte Inhalt vonWie verwende ich PDO-vorbereitete Anweisungen für MySQL-LIKE-Abfragen in PHP korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage