PDO bietet eine sichere Möglichkeit, SQL-Abfragen mit gebundenen Parametern auszuführen und so SQL-Injection-Schwachstellen zu verhindern. Beim Binden von LIKE-Parametern, die Platzhalterzeichen wie % enthalten, kann es zu Verwirrung kommen.
In der folgenden Abfrage versuchen wir, die Variable $partial% mithilfe von PDO zu binden:
select wrd from tablename WHERE wrd LIKE '$partial%'
Es ist wichtig zu verstehen, wie PDO mit solchen Bindungen umgeht. Der richtige Ansatz hängt von Ihren spezifischen Anforderungen ab.
Ja, das ist eine gültige Option:
select wrd from tablename WHERE wrd LIKE ':partial%'
wobei :partial an $partial="somet" gebunden ist.
Sie können auch diesen Ansatz verwenden:
select wrd from tablename WHERE wrd LIKE ':partial'
wobei :partial an $partial="somet%" gebunden ist.
Wenn Sie möchten, können Sie die Zeichenfolgenverkettung innerhalb der MySQL-Abfrage selbst durchführen:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Wenn Ihr Teilwort Sonderzeichen wie %, _ oder enthält, müssen Sie diese manuell maskieren, bevor Sie den Parameter binden. Der folgende Code demonstriert dies:
$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-Parameter sicher mit Platzhaltern in PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!