Wie binde ich LIKE-Werte mit dem %-Zeichen in PDO?

Linda Hamilton
Freigeben: 2024-11-16 16:59:03
Original
679 Leute haben es durchsucht

How to Bind LIKE Values with the % Character in PDO?

LIKE-Werte mit %-Zeichen in PDO binden

Bei PDO-gesteuerten SQL-Abfragen kommt es häufig vor, dass LIKE-Werte gebunden werden müssen, die das %-Platzhalterzeichen enthalten. Durch das Binden solcher Werte wird die Verhinderung von SQL-Injection sichergestellt. Allerdings kann die Syntax hierfür verwirrend sein.

Abfrage mit LIKE '%': Überlegungen zur Bindung

Bedenken Sie die Abfrage:

select wrd from tablename WHERE wrd LIKE '$partial%'
Nach dem Login kopieren

Hier möchten Sie Binden Sie die Variable $partial mithilfe von PDO. Das Dilemma entsteht bei der Entscheidung, wie das %-Zeichen gebunden werden soll.

Optionen für die Bindung

Option 1:

select wrd from tablename WHERE wrd LIKE ':partial%'
Nach dem Login kopieren

Bind :partial to $ partial="somet".

Option 2:

select wrd from tablename WHERE wrd LIKE ':partial'
Nach dem Login kopieren

Bind :partial to $partial="somet%".

Option 3 (Alternative):

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Nach dem Login kopieren

Führen Sie eine Zeichenfolgenverkettung mit der MySQL-CONCAT-Funktion durch.

Besondere Fallüberlegungen

Wenn das gesuchte Teilwort enthält B. ein %- oder Unterstrichzeichen, ist eine besondere Behandlung erforderlich. Die Lösung besteht darin, die ESCAPE-Klausel in der PDO-Anweisung zu verwenden:

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

Diese Technik stellt sicher, dass die Sonderzeichen innerhalb des LIKE-Ausdrucks korrekt interpretiert werden.

Das obige ist der detaillierte Inhalt vonWie binde ich LIKE-Werte mit dem %-Zeichen in PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage