我有一个使用PDO的mysql查询,我想使用LIKE语句在我的数据库中搜索值。
我目前正在使用查询
$selectdp = $connection->prepare(
"SELECT `FilePath`,`ItemPicID`,`Extension`
FROM `ItemPics`
WHERE `BusinessID`=:bizid
AND `ItemID`=:itemid
AND `FilePath` LIKE :search ");
带
$selectdp->bindValue(":search",'%DP');
但我收到了错误
语法错误或访问冲突:1064 SQL语法中出错;检查与MySQL服务器版本对应的手册,以便在'%DP'附近使用正确的语法....
我在查询中尝试过的事情
我看过
implement LIKE query in PDO和How prepare statement with bindvalue and %?但似乎没有任何效果。
答案 0 :(得分:1)
我被教会在SQL中连接LIKE表达式,并在连接中设置参数。例如:
$selectdp = $connection->prepare(
"SELECT `FilePath`,`ItemPicID`,`Extension`
FROM `ItemPics`
WHERE `BusinessID`=:bizid
AND `ItemID`=:itemid
AND `FilePath` LIKE concat('%', :search)
在这里看看Kzqai's answer,他似乎比我更了解它。
根据他的解释,这方面的一个主要困难是阻止通配符充当文字。