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 查询

在 PDO 中实现 LIKE 查询

PHP PDO 准备语句——MySQL LIKE 查询

PHP PostgreSQL PDO 无法使用 LIKE 绑定参数

使用 PDO 在 php 中的多个查询与单个查询?

pdo 在多个查询上返回 true,即使其中一个失败