I am trying to search the name
field in my database using LIKE
. If I craft the SQL 'by hand` like this:
$query = "SELECT *
"
. "FROM `help_article`
"
. "WHERE `name` LIKE '%how%'
"
. "";
$sql = $db->prepare($query);
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
Then it will return relevant results for 'how'.
However, when I turn it into a prepared statement:
$query = "SELECT *
"
. "FROM `help_article`
"
. "WHERE `name` LIKE '%:term%'
"
. "";
$sql->execute(array(":term" => $_GET["search"]));
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
I am always getting zero results.
What am I doing wrong? I am using prepared statements in other places in my code and they work fine.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…