Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich den LIKE-Operator mit Parametern in PDO?
LIKE-Abfrage in PDO implementieren
In PDO ist es bei Verwendung des LIKE-Operators wichtig, die %-Zeichen in die Parameter aufzunehmen, nicht innerhalb der Abfrage selbst. Dies liegt daran, dass von PDO vorbereitete Anweisungen Werte in Anführungszeichen einschließen, was zu Konflikten mit den %-Platzhaltern führen kann.
Betrachten Sie beispielsweise die folgende Abfrage:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2);
Wenn diese Abfrage vorbereitet wird, wird % Zeichen werden in Anführungszeichen gesetzt, was zu einer Abfrage wie dieser führt:
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Folglich gibt die Abfrage keine zurück Ergebnisse, da die doppelten Anführungszeichen die beabsichtigte Funktionalität des LIKE-Operators stören.
Um dieses Problem zu beheben, sollten stattdessen die %-Zeichen in die Parameter aufgenommen werden:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%");
Mit dieser Änderung wird die Die vorbereitete Abfrage sucht korrekt nach Adressen, die $var1 oder $var2 enthalten.
Das obige ist der detaillierte Inhalt vonWie verwende ich den LIKE-Operator mit Parametern in PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!