2009-12-04 20 views
6

Mi chiedo quale sia la sintassi per eseguire una selezione db in Zend Framework in cui due valori sono veri. Esempio: Voglio trovare se un utente è già un membro di un gruppo:Zend Framework: come fare una selezione DB con più parametri?

$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(); 

risposta

15

È possibile utilizzare più clausole dove che sarà AND insieme di default:

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

Ricevo un'eccezione quando provo a fare il primo esempio: SQLSTATE [21000]: Violazione della cardinalità: 1241 Operand dovrebbe contenere 1 colonna (s) – Andrew

+0

Strano, ho usato entrambe le tecniche in passato contro MySQL usando l'adattatore PDO . Credo che avrò bisogno di creare un tavolo da testare. Potrebbe essere che il tipo di database o l'adattatore non supporta la sintassi che ho suggerito. –

+0

Quale combinazione di database/adattatore stai usando? –

4

nel caso in cui qualcuno vuole per aggiungere una condizione OR per una select con più params

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

per altro guarda Zend seleziona manuale Docs: zend.db.select

Problemi correlati