Zend DB fetchAll():where子句数组与IN运算符

时间:2010-02-17 20:55:31

标签: php sql zend-db

我使用相当于此查询的数据库从数据库中选择记录:

SELECT * FROM reports WHERE user_id IN (3, 6, 22);

调用fetchAll()的函数有一个参数,它是一个用户ID数组,这个调用工作正常:

$resultSet = $this->getDbTable()->fetchAll('user_id IN (' . implode(', ', $userIds) . ')');

但是,我想为where子句使用一个数组,因为稍后可能会对查询有其他限制......而且我无法弄清楚我的生活。我认为以下内容会有所不同:

$resultSet = $this->getDbTable()->fetchAll(array('user_id IN ?' => '(' . implode(', ', $userIds) . ')'));

但到目前为止还没有骰子。有人可以在这里提供正确的语法吗?

3 个答案:

答案 0 :(得分:21)

$data = array(1, 2, 3);
$select->where('user_id IN (?)', $data);

答案 1 :(得分:2)

在Zend 2中

$data = array(1, 2, 3);
$select->where('user_id', $data);

答案 2 :(得分:0)

$select = $this->getSql()->select();
$select->where("reports.user_id in ('3','6','22')"); 
$resultSet = $this->selectWith($select);             
//echo $select->getSqlString();die;
return $resultSet;