2009-12-04 8 views
6

Me pregunto cuál es la sintaxis para hacer una selección de db en Zend Framework donde dos valores son verdaderos. Ejemplo: Quiero encontrar si un usuario ya es miembro de un grupo:Zend Framework: ¿Cómo hacer una selección de base de datos con múltiples params?

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

Respuesta

15

Puede utilizar varias cláusulas WHERE que se asocian con un AND por defecto:

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

Obtengo una excepción al intentar hacer el primer ejemplo: SQLSTATE [21000]: infracción de cardinalidad: 1241 Operando debe contener 1 columna (s) – Andrew

+0

Extraño, he usado ambas técnicas en el pasado contra MySQL usando el adaptador PDO . Supongo que tendré que configurar una mesa para probar. Puede ser que su tipo de base de datos o adaptador no sea compatible con la sintaxis que sugerí. –

+0

¿Qué combinación de base de datos/adaptador está usando? –

4

por si acaso alguien quiere añadir una condición OR a un selecto con múltiples params

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

para más ver el manual de Zend Seleccionar Docs: zend.db.select

Cuestiones relacionadas