3 回答
TA贡献1790条经验 获得超9个赞
$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));
错了 您不需要双引号。
WHERE hs.hs_text LIKE ":searchTerm"
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
这也是错误的。尝试:
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
说明:准备好的语句不能简单地进行字符串替换。它们传输的数据与查询完全分开。仅在将值嵌入查询中时才需要引号。
TA贡献1777条经验 获得超10个赞
$prep = $dbh->prepare($sql);
$ret = $prep->execute(array('searchTerm' => $searchTerm));
TA贡献1906条经验 获得超3个赞
好吧,我解决了这个问题。坦率地说,我是个白痴...谢谢大家看到这些并给出了很好的反馈。问题是表名中的错字(我更改了,所以这里没有人能看到我的问题开头...)。但是,这些建议确实使我找到了问题,因此,谢谢亚当,jkndrkn和troelskn。
作为记录,以下组合效果很好:
WHERE aw_hcl_subdevices.hs_text LIKE CONCAT(\'%\', ?, \'%\')
$ret = $prep->execute(array($searchTerm));
添加回答
举报