我正在尝试name使用我的数据库中的字段搜索LIKE.如果我像这样手工制作SQL:
$query = "SELECT * \n"
. "FROM `help_article` \n"
. "WHERE `name` LIKE '%how%'\n"
. "";
$sql = $db->prepare($query);
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
Run Code Online (Sandbox Code Playgroud)
然后它将返回'how'的相关结果.
但是,当我把它变成准备好的声明时:
$query = "SELECT * \n"
. "FROM `help_article` \n"
. "WHERE `name` LIKE '%:term%'\n"
. "";
$sql->execute(array(":term" => $_GET["search"]));
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
Run Code Online (Sandbox Code Playgroud)
我总是得到零结果.
我究竟做错了什么?我在我的代码中的其他地方使用预准备语句,它们工作正常.