PDO查询中的多个LIKE
Posted
技术标签:
【中文标题】PDO查询中的多个LIKE【英文标题】:Multiple LIKE in PDO query 【发布时间】:2012-08-04 21:52:15 【问题描述】:我需要对具有多个“喜欢”的 PDO 执行查询。
到目前为止,我会说我对 1 like 的查询如下所示: $query = $database->prepare('SELECT * FROM table WHERE column1 LIKE ?'); $query->execute(array('%$value1%'));
所以,如果我在 mysql 中有这个:
mysql_query("SELECT * FROM table WHERE column1 LIKE %$value1% OR column1 LIKE %$value2% OR column2 LIKE %$value1%")
它将如何在 PDO 中翻译?
mysql_query("SELECT * FROM table WHERE column1 LIKE ? OR column1 LIKE ? OR column2 LIKE ?")
$query->execute(array('%$value1%','%$value2%',.....));
这样就够了吗?
【问题讨论】:
将你的引用样式排序出来(变量不插在单引号中),是的,这样就可以了。 【参考方案1】:差不多就是这样,尽管在第二个示例中您似乎仍在使用 mysql_*
函数而不是 PDO。
除此之外,如果您希望变量替换为字符串,您只需要记住使用双引号即可。
$query = $dbh->prepare('SELECT * FROM table WHERE column1 LIKE ? OR column1 LIKE ? OR column2 LIKE ?');
$query->execute(array("%$value1%","%$value2%",.....));
【讨论】:
以上是关于PDO查询中的多个LIKE的主要内容,如果未能解决你的问题,请参考以下文章
在 bindParam 中使用 LIKE 进行 MySQL PDO 查询