LIKE-Abfrage in PDO implementieren
Bei der Verwendung des LIKE-Operators in PDO-Abfragen ist es wichtig, die richtige Syntax sicherzustellen, um die gewünschte Suche zu erreichen Ergebnisse. In der bereitgestellten Abfrage verursacht die falsche Platzierung der %-Zeichen innerhalb der $query-Zeichenfolge das Problem.
Syntaktische Korrektur
Die geänderte Abfrage sollte die %-Zeichen enthalten im $params-Array, nicht innerhalb der Abfragezeichenfolge:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%");
Diese Änderung stellt sicher, dass der LIKE-Operator auf $var1 und $var2 wirkt Variablen, während sie innerhalb der vorbereiteten Anweisung maskiert werden.
Erklärung
In PDO verwenden vorbereitete Anweisungen Platzhalter (?), um dynamische Werte darzustellen. Beim Ausführen der Abfrage stellt das Array $params die entsprechenden Werte bereit, um die Platzhalter zu ersetzen. In der ursprünglichen Abfrage wurden die %-Zeichen innerhalb der $query-Zeichenfolge platziert, was dazu führte, dass das PDO sie als Literalzeichen behandelte.
Durch das Verschieben der %-Zeichen in das $params-Array geben Sie an, dass sie Teil davon sind der dynamischen Werte, nach denen gesucht wird, und nicht Teil der Abfragesyntax selbst.
Das obige ist der detaillierte Inhalt vonWie verwende ich den LIKE-Operator korrekt mit PDO-vorbereiteten Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!