sql >> Databasteknik >  >> RDS >> Mysql

PHP PDO förberedd sats -- MySQL LIKE-fråga

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

Detta är fel. Du behöver inte de dubbla citattecken.

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

Detta är också fel. Försök med:

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

Förklaring:Förberedda satser ersätter inte bara en sträng. De transporterar data helt separat från frågan. Citat behövs bara när värden bäddas in i en fråga.



  1. PostgreSQL:Frågan har ingen destination för resultatdata

  2. Varför är IS NOT NULL falsk när man kontrollerar en radtyp?

  3. Hur väljer man endast datum från ett DATETIME-fält i MySQL?

  4. Hur man använder DISTINCT i SQL