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%“:
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.
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.
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!