Heim >Backend-Entwicklung >PHP-Tutorial >Wie vermeide ich falsche Abfragen bei der Verwendung von LIKE in PDO?

Wie vermeide ich falsche Abfragen bei der Verwendung von LIKE in PDO?

Susan Sarandon
Susan SarandonOriginal
2024-11-11 12:54:021101Durchsuche

How to Avoid Incorrect Queries When Using LIKE in PDO?

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!

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