我在PDO中实施LIKE时遇到问题
我有这个查询:
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'"; $params = array($var1, $var2); $stmt = $handle->prepare($query); $stmt->execute($params); 我检查了,$var1并且$var2它们都包含我要搜索的单词,由于我的某些查询SELECT INSERT有效,因此我的PDO正常工作,只是我对LIKEPDO 不太熟悉。
结果不返回。我$query的语法正确吗?
您必须%在而$params不是查询中包括符号:
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params); 如果您在之前的代码中查看生成的查询,则会看到类似的内容SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%',因为prepared语句在一个已被引用的字符串内引用了您的值。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。