LIKE-Abfragen in PDO verwenden
Beim Versuch, LIKE-Abfragen in PDO zu implementieren, können Probleme wie das in der folgenden Abfrage beschriebene auftreten :
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2); $stmt = $handle->prepare($query); $stmt->execute($params);
Diese Abfrage wird wahrscheinlich keine Ergebnisse zurückgeben, selbst wenn $var1 und $var2 gültige Suchbegriffe enthalten. Der Fehler liegt in der falschen Einbeziehung von %-Zeichen.
Um LIKE in PDO korrekt zu verwenden, sollten die %-Zeichen im $params-Array enthalten sein, nicht in der Abfrage selbst. Hier ist der korrigierte Code:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
Durch das Einschließen der Variablen in %-Zeichen innerhalb des $params-Arrays stellen Sie sicher, dass die %-Zeichen korrekt in die Abfrage eingesetzt werden. Ohne diese Änderung behandelt die vorbereitete PDO-Anweisung die %-Zeichen als Teil des Literalzeichenfolgenwerts, was zu einer falschen Abfrage führt.
Das obige ist der detaillierte Inhalt vonWie verwende ich LIKE-Abfragen korrekt mit PDO-Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!