sql >> Database >  >> RDS >> Mysql

PHP PDO voorbereide verklaring -- MySQL LIKE query

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

Dit is fout. Je hebt de dubbele aanhalingstekens niet nodig.

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

Dit is ook fout.Probeer met:

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

Uitleg:Voorbereide instructies doen niet zomaar een string-replace. Ze transporteren de gegevens volledig gescheiden van de query. Aanhalingstekens zijn alleen nodig bij het insluiten van waarden in een zoekopdracht.



  1. Succesvolle MySQL/MariaDB back-up- en herstelstrategieën

  2. Foutcode:1406. Gegevens te lang voor kolom - MySQL

  3. SSIS-pakket wil geen metadata van tijdelijke tabel ophalen

  4. oracle -- Splits meerdere door komma's gescheiden waarden in de Oracle-tabel naar meerdere rijen