LIKE-Werte mit der PDO-Erweiterung binden
Beim Arbeiten mit LIKE-Abfragen ist es wichtig zu überlegen, wie Variablenwerte mit der PDO-Erweiterung gebunden werden . Das Platzhalterzeichen „%“ kann, wenn es am Ende der Suchzeichenfolge platziert wird, einige Herausforderungen darstellen.
In der bereitgestellten Abfrage:
select wrd from tablename WHERE wrd LIKE '$partial%'
Es stellt sich die Frage, wie das gebunden werden soll ${partial} Variable mit PDO. Es lohnt sich, drei Optionen in Betracht zu ziehen:
Option 1: Mit „%“ am Ende binden
select wrd from tablename WHERE wrd LIKE ':partial%'
Bei dieser Option ist der Parameter :partial an gebunden value $partial="somet", wobei das „%“ am Ende beibehalten wird.
Option 2: Ohne „%“ am Ende binden
select wrd from tablename WHERE wrd LIKE ':partial'
Bei dieser Option ist :partial an $partial="somet%" gebunden und hat effektiv ein festes „%“ am Ende der Suchzeichenfolge.
Option 3:Verwenden Sie die CONCAT-Funktion von MySQL
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Diese Option ermöglicht die Verkettung von der Suchbegriff und „%“, die in MySQL selbst ausgeführt werden sollen.
Außerdem, wenn der gesuchte Suchbegriff möglicherweise Zeichen mit besonderer Bedeutung in LIKE-Operatoren enthält, wie z. B. „%“, „_“ ' oder '', ein komplexerer Ansatz mit String-Escape ist erforderlich:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
Das obige ist der detaillierte Inhalt vonWie binde ich LIKE-Werte mit der PDO-Erweiterung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!