LIKE-Abfragen korrekt in PDO implementieren
Beim Versuch, eine LIKE-Abfrage in PDO auszuführen, ist es wichtig, die richtige Syntax sicherzustellen, um genaue Ergebnisse abzurufen . In der bereitgestellten Abfrage liegt das Problem in der Platzierung der %-Platzhalterzeichen.
Die korrekte Syntax für LIKE-Abfragen in PDO besteht darin, die %-Zeichen in das $params-Array und nicht in die Abfrage selbst aufzunehmen. Hier ist ein Beispiel:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
Wenn die %-Zeichen im $params-Array enthalten wären, würde die generierte Abfrage wie folgt aussehen:
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Allerdings in der ursprünglich bereitgestellten Abfrage , die %-Zeichen wurden in die Abfrage selbst eingefügt:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
Wenn die Abfrage ausgeführt wird, zitiert die vorbereitete Anweisung die Werte innerhalb einer bereits in Anführungszeichen gesetzten Zeichenfolge, was zu einer falschen Abfrage führt. Durch Verschieben der %-Zeichen in das $params-Array wird die beabsichtigte Abfrage korrekt ausgeführt.
Das obige ist der detaillierte Inhalt vonWie vermeide ich falsche Abfragen bei der Verwendung von LIKE in PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!