Heim >Datenbank >MySQL-Tutorial >Wie binde ich LIKE-Werte sicher mit PDO in PHP?

Wie binde ich LIKE-Werte sicher mit PDO in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 15:01:14526Durchsuche

How to Safely Bind LIKE Values with PDO in PHP?

LIKE-Werte mit PDO binden

In einer Abfrage, bei der Sie einen teilweisen Zeichenfolgenabgleich mit dem LIKE-Operator durchführen möchten, binden Sie LIKE-Werte mit Die PDO-Erweiterung kann verwirrend sein. Sehen wir uns an, wie man damit richtig umgeht.

Partielle Zeichenfolgenübereinstimmung mit LIKE

Bei Verwendung des LIKE-Operators hängen Sie % an die Teilzeichenfolge an, um nach übereinstimmenden Datensätzen zu suchen. Zum Beispiel:

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

Hier stellt $partial die Zeichenfolge dar, mit der die wrd-Spalte übereinstimmen soll.

Bindung mit PDO

Zum Binden der $Teilwert mit PDO, Sie haben mehrere Möglichkeiten:

  1. Binden mit Platzhaltern im Abfrage: Sie können den %-Platzhalter direkt in die Abfrage einfügen, wie zum Beispiel:
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :partial");
$stmt->bindParam(':partial', $partial);

Hier ist $partial ohne Änderungen an den Platzhalter :partial gebunden.

  1. Ohne Platzhalter in der Abfrage binden: Diese Methode entfernt den %-Platzhalter aus der Abfrage, daher müssen Sie dies tun Beim Binden manuell anhängen:
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')");
$stmt->bindParam(':partial', $partial);
  1. Umgang mit Sonderzeichen: Wenn die Teilzeichenfolge Zeichen enthält, die in LIKE-Abfragen eine besondere Bedeutung haben (z. B. %, _ , ), müssen Sie diese Zeichen vor dem Binden maskieren:
$escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $partial);
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$stmt->bindParam(':term', $escaped);

Durch Befolgen dieser Richtlinien können Sie LIKE-Werte effektiv binden Verwenden Sie PDO und führen Sie teilweise Zeichenfolgenübereinstimmungen in Ihren Datenbankabfragen durch.

Das obige ist der detaillierte Inhalt vonWie binde ich LIKE-Werte sicher mit PDO in PHP?. 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