开发者社区> 问答> 正文

在PDO中实现LIKE查询?mysql

我在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的语法正确吗?

展开
收起
保持可爱mmm 2020-05-17 10:29:29 339 0
1 条回答
写回答
取消 提交回答
  • 您必须%在而$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

    2020-05-17 10:32:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像