Heim >Backend-Entwicklung >PHP-Tutorial >Wie werden LIKE-Operatoren in PDO ordnungsgemäß mit Sonderzeichen verknüpft?

Wie werden LIKE-Operatoren in PDO ordnungsgemäß mit Sonderzeichen verknüpft?

Susan Sarandon
Susan SarandonOriginal
2024-11-28 19:23:15570Durchsuche

How to Properly Bind LIKE Operators with Special Characters in PDO?

Verwendung von LIKE-Operatoren mit PDO-Bindungen

Das Binden von LIKE-Werten mit PDO kann aufgrund der Verwendung von Sonderzeichen ('%' und '_') in der Datei verwirrend sein passendes Muster. In dieser speziellen Abfrage:

SELECT wrd FROM tablename WHERE wrd LIKE '$partial%'

Es gibt mehrere Optionen zum Binden der Teilzeichenfolge „$partial%“:

  • Option 1:
SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'

Hier wird der Parameter ':partial' an '$partial="somet"' gebunden und der Platzhalter angehängt '%' bis zum Ende der Zeichenfolge.

  • Option 2:
SELECT wrd FROM tablename WHERE wrd LIKE ':partial'

In diesem Fall ist der Parameter ':partial' ist an „$partial="somet%"" gebunden, was das Platzhalterzeichen in der Bindung einschließt Wert.

  • Option 3 (Alternative):
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

Mit dieser Option können Sie die Zeichenfolgenverkettung stattdessen innerhalb der MySQL-Abfrage durchführen als im PHP-Code.

Handling Special Zeichen

Wenn die Teilzeichenfolge Sonderzeichen wie „%“, „_“ oder „“ enthält, sind komplexere Methoden erforderlich, um diese ordnungsgemäß zu maskieren. Hier ist ein Beispiel:

$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);

In diesem Code werden die Sonderzeichen durch Escape-Sequenzen (' ', ' %' und ' _') ersetzt, um sicherzustellen, dass sie von MySQL korrekt interpretiert werden.

Das obige ist der detaillierte Inhalt vonWie werden LIKE-Operatoren in PDO ordnungsgemäß mit Sonderzeichen verknüpft?. 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