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

Istruzione preparata PHP PDO -- query MySQL LIKE

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

Questo è sbagliato. Non hai bisogno delle virgolette doppie.

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

Anche questo è sbagliato. Prova con:

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

Spiegazione:Le istruzioni preparate non eseguono semplicemente una sostituzione di stringhe. Trasportano i dati completamente separati dalla query. Le virgolette sono necessarie solo quando si incorporano valori in una query.