2009-12-04 5 views
6

Мне просто интересно, что синтаксис должен сделать выбор db в Zend Framework, где два значения истинны. Пример: Я хочу, чтобы найти, если пользователь уже является членом группы:Zend Framework: как сделать выбор DB с несколькими параметрами?

$userId = 1; 
$groupId = 2; 
$db = Zend_Db_Table::getDefaultAdapter(); 
$select = new Zend_Db_Select($db); 
$select->from('group_members') 
    ->where('user_id = ?', $userId); //Right here. What do I do about group_id? 
$result = $select->query(); 
$resultSet = $result->fetchAll(); 

ответ

15

Вы можете использовать несколько ИНЕКЕ, которые будут операции AND вместе по умолчанию:

$select->from('group_members') 
    ->where('user_id = ?', $userId) 
    ->where('group_id = ?', $groupId); 
+0

Я получаю исключение при попытке сделать первый пример: SQLSTATE [21000]: нарушение кардинальности: 1241 Операнд должен содержать 1 столбец – Andrew

+0

Странно, я использовал оба метода в прошлом для MySQL с использованием адаптера PDO , Думаю, мне нужно настроить таблицу для тестирования. Возможно, ваш тип базы данных или адаптер не поддерживает предложенный вами синтаксис. –

+0

Какую комбинацию баз данных/адаптеров вы используете? –

4

Только в случае, если кто хочет добавить условие или на выбор с несколько Params

$select = $db->select() 
     ->from('products', 
       array('product_id', 'product_name', 'price')) 
     ->where('price < ?', $minimumPrice) 
     ->orWhere('price > ?', $maximumPrice); 

для получения дополнительного зрения Зенда Выберите ручного Docs: zend.db.select