sql >> Base de Datos >  >> RDS >> Mysql

Declaración preparada de PHP PDO:consulta MySQL LIKE

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

Esto está mal. No necesita las comillas dobles.

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

Esto también está mal. Prueba con:

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

Explicación:las sentencias preparadas no hacen simplemente un reemplazo de cadena. Transportan los datos completamente separados de la consulta. Las comillas solo son necesarias cuando se incrustan valores en una consulta.