我使用相当于此查询的数据库从数据库中选择记录:
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) . ')'));
但到目前为止还没有骰子。有人可以在这里提供正确的语法吗?
答案 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;