如何使用动态OR条件进行PDO查询

时间:2011-06-30 12:25:38

标签: php mysql pdo

我有一个查询,从ac_product获取项目为:

$STH = $DBH->prepare('SELECT * from ac_product where active = "1" and id = :id');
$STH->bindParam(':id', $value);

其中一个名为relationship的列包含需要获取的0-n个其他id。

今天解决方案是每个id一次查询,如果可能,我想将其限制为更少或仅限一个。

考虑例如。

$row['relationship'] //is 2.3.4
$arrayRelationship = explode(".",$row['relationship']);

是否有可能,如果是这样,如何制作可以获取n个相关项的PDO OR条件查询?

或者是否有一种顺利的方法可以编译n个查询,并且至少可以使用beginTransaction和commit进行查询?

1 个答案:

答案 0 :(得分:3)

您可以使用IN(),这实际上是逻辑OR的替代。

$sth = $dbh->prepare('SELECT * from ac_product where active = "1" and id IN (:id)');