Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zend DB fetchAll(): where clause array with IN operator

Tags:

sql

php

zend-db

I'm selecting records from a database using the equivalent of this query:

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

The function calling fetchAll() has an argument that's an array of the user IDs, and this call works just fine:

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

However, I would like to use an array for the where clause because there will probably be other restrictions to the query later... and I can't figure it out for the life of me. I thought it would be some variation on the following:

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

But so far no dice. Can someone provide the correct syntax here?

like image 361
Cyranix Avatar asked Feb 17 '10 20:02

Cyranix


1 Answers

$data = array(1, 2, 3);
$select->where('user_id IN (?)', $data);
like image 98
Vladimir Mihailenco Avatar answered Oct 14 '22 13:10

Vladimir Mihailenco