开发者社区 问答 正文

mysql PDO如何绑定LIKE?mysql

在这个查询中

select wrd from tablename WHERE wrd LIKE '$partial%' 我正在尝试将变量'$partial%'与PDO 绑定。不确定最后如何处理%。

可不可能是

select wrd from tablename WHERE wrd LIKE ':partial%' :partial绑定到哪里$partial="somet"

还是会

select wrd from tablename WHERE wrd LIKE ':partial' :partial绑定到哪里$partial="somet%"

还是会完全不同?

展开
收起
保持可爱mmm 2020-05-17 12:38:04 531 分享 版权
1 条回答
写回答
取消 提交回答
  • 您还可以说:

    SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%') 在MySQL末尾进行字符串连接,并不是在这种情况下有任何特殊原因。

    如果wrd要查找的部分本身可以包含百分比或下划线字符(因为这些字符对LIKE运算符具有特殊含义)或反斜杠(MySQL用作LIKE运算符的另一种转义层),则事情会变得更加棘手。,根据ANSI SQL标准)。 来源:stack overflow 希望这不会影响您,但是如果您确实需要解决此问题,则可以使用以下凌乱的解决方案:

    $stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped= str_replace(array('+', '%', ''), array('++', '+%', '+'), $var); $stmt->bindParam(':term', $escaped);

    2020-05-17 12:43:28
    赞同 展开评论