Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql PDO wie man LIKE bindet

Sie könnten auch sagen:

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

um die String-Verknüpfung am MySQL-Ende durchzuführen, nicht dass es in diesem Fall einen besonderen Grund dafür gibt.

Etwas kniffliger wird es, wenn der Teil wrd Sie suchen, kann selbst ein Prozent- oder Unterstrichzeichen enthalten (da diese eine besondere Bedeutung für den LIKE-Operator haben) oder einen umgekehrten Schrägstrich (den MySQL als weitere Escape-Ebene im LIKE-Operator verwendet — gemäß dem ANSI-SQL-Standard fälschlicherweise).

Hoffentlich betrifft Sie das nicht, aber wenn Sie diesen Fall richtig machen müssen, hier ist die unordentliche Lösung:

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