Heim >Datenbank >MySQL-Tutorial >Wie verwende ich den LIKE-Operator mit PDO in PHP richtig?

Wie verwende ich den LIKE-Operator mit PDO in PHP richtig?

Linda Hamilton
Linda HamiltonOriginal
2024-12-08 03:40:13345Durchsuche

How to Correctly Use the LIKE Operator with PDO in PHP?

LIKE-Abfragen mit PDO implementieren

Bei Verwendung des LIKE-Operators in Structured Query Language (SQL) wird das Prozentzeichen (%) verwendet als Platzhalterzeichen, um mit null oder mehr Vorkommen einer Teilzeichenfolge übereinzustimmen. In PHP mit PDO (PHP Data Objects) kann der LIKE-Operator verwendet werden, um einen Mustervergleich mit einer Datenbankspalte durchzuführen.

Problemformulierung

Ein Benutzer stößt auf ein Problem beim Versuch, den LIKE-Operator in PDO zu verwenden. Obwohl sichergestellt wurde, dass die Variablenwerte die gewünschten Suchbegriffe enthalten und die Funktionalität anderer PDO-Abfragen überprüft wurde, gibt die LIKE-Abfrage keine Ergebnisse zurück.

Korrekte Abfragesyntax

Zur Lösung Um das Problem zu lösen, ist es wichtig, die abzugleichenden Variablenwerte mit dem Prozent-Platzhalter (%) in das $params-Array einzuschließen, anstatt sie in die Abfragezeichenfolge selbst einzubetten. Hier ist die korrekte Syntax:

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";
$params = array("%$var1%", "%$var2%");
$stmt = $handle->prepare($query);
$stmt->execute($params);

Erklärung

In der ursprünglichen Abfrage wurden die %-Platzhalter in die Abfragezeichenfolge eingebettet. PDO bereitet die Abfrage jedoch vor, indem es die Werte in Anführungszeichen setzt, was zu einer Abfrage wie folgt führt:

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'

Diese falsche Syntax verhindert, dass die %-Platzhalter ordnungsgemäß als Platzhalter funktionieren, was dazu führt, dass keine Übereinstimmungen gefunden werden. Indem stattdessen die Platzhalter in das Array $params eingefügt werden, werden die Prozentzeichen nicht in Anführungszeichen gesetzt, sodass sie ihre beabsichtigte Wildcard-Matching-Funktionalität ausführen können.

Das obige ist der detaillierte Inhalt vonWie verwende ich den LIKE-Operator mit PDO in PHP richtig?. 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