在这个查询中
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%"
还是会完全不同?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您还可以说:
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);