Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich den LIKE-Operator mit Parametern in PDO?

Wie verwende ich den LIKE-Operator mit Parametern in PDO?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 09:26:11738Durchsuche

How to Use LIKE Operator with Parameters 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!

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