Mysql
 sql >> Base de données >  >> RDS >> Mysql

Instruction préparée PHP PDO - requête MySQL LIKE

$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));

C'est faux. Vous n'avez pas besoin des guillemets doubles.

WHERE hs.hs_text LIKE ":searchTerm" 
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));

C'est également faux. Essayez avec :

$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));

Explication :Les instructions préparées ne font pas simplement un remplacement de chaîne. Ils transportent les données complètement séparées de la requête. Les guillemets ne sont nécessaires que lors de l'intégration de valeurs dans une requête.