Heim > Backend-Entwicklung > PHP-Tutorial > Wie implementiert man LIKE-Abfragen mit Platzhaltern in PDO?

Wie implementiert man LIKE-Abfragen mit Platzhaltern in PDO?

Susan Sarandon
Freigeben: 2024-11-12 01:34:03
Original
437 Leute haben es durchsucht

How to Implement LIKE Queries with Placeholders in PDO?

LIKE-Abfrage in PDO implementieren

Bei der Arbeit mit LIKE-Abfragen in PDO ist es wichtig zu verstehen, wie Platzhalter und Bindevariablen korrekt eingebunden werden. Dieser Artikel befasst sich mit einem Problem, mit dem ein Benutzer konfrontiert war, der LIKE-Abfragen in PDO implementierte, wobei seine Abfrage keine Ergebnisse zurückgab.

Die ursprüngliche Abfrage, wie vom Benutzer bereitgestellt, versuchte, Platzhalter mit angehängten Prozentzeichen zu verwenden:

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

Dieser Ansatz ist jedoch falsch. Die Prozentzeichen sollten in den Bind-Variablen enthalten sein, nicht in der Abfrage selbst:

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

Durch das Einschließen der Variablenwerte mit Prozentzeichen in den Bind-Variablen stellt die generierte Abfrage sicher, dass nach den LIKE-Klauseln gesucht wird Adressen, die die angegebenen Wörter enthalten. Ohne diese Anpassung würde die Abfrage etwa Folgendes generieren:

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Nach dem Login kopieren

Diese Abfrage würde fehlschlagen, weil die Prozentzeichen in Anführungszeichen eingebettet sind, was dazu führt, dass die Suche nach Adressen sucht, die genau den Text „foo“ oder „ enthalten. bar", keine Wörter, die diese Begriffe enthalten.

Das obige ist der detaillierte Inhalt vonWie implementiert man LIKE-Abfragen mit Platzhaltern in PDO?. 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