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
Susan SarandonOriginal
2024-11-12 01:34:03421Durchsuche

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);

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%");

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"%'

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!

Stellungnahme:
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