sql >> Database teknologi >  >> RDS >> Mysql

mysql PDO hvordan man binder LIKE

Du kan også sige:

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

at gøre strengen joining i MySQL-enden, ikke at der er nogen særlig grund til det i dette tilfælde.

Tingene bliver lidt mere vanskelige, hvis den delvise wrd du leder efter kan i sig selv indeholde et procent- eller understregningstegn (da disse har en særlig betydning for LIKE-operatoren) eller en omvendt skråstreg (som MySQL bruger som endnu et lag af escape i LIKE-operatoren — forkert ifølge ANSI SQL-standarden).

Forhåbentlig påvirker det dig ikke, men hvis du har brug for at få sagen rigtigt, er her den rodede løsning:

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


  1. Unicode-normalisering i PostgreSQL 13

  2. Lagring af XML-data i SQL Server

  3. Doktrinforespørgselssprog få Max/Seneste række pr. gruppe

  4. Ugyldigt parameternummer:parameter blev ikke defineret Indsætter data