PDO LIKE语句的正确语法

时间:2014-01-06 05:41:51

标签: php mysql sql pdo

我有一个使用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'附近使用正确的语法....

我在查询中尝试过的事情

  • LIKE =:搜索
  • LIKE CONCAT('%':搜索)

我看过

implement LIKE query in PDOHow prepare statement with bindvalue and %?但似乎没有任何效果。

1 个答案:

答案 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,他似乎比我更了解它。

根据他的解释,这方面的一个主要困难是阻止通配符充当文字。