Zend framework Zend Framework:如何使用多个参数进行DB选择?

Zend framework Zend Framework:如何使用多个参数进行DB选择?,zend-framework,zend-db,zend-db-select,Zend Framework,Zend Db,Zend Db Select,我只是想知道在Zend框架中执行db select的语法是什么,其中两个值是真的。示例:我想查找用户是否已经是组的成员: $userId = 1; $groupId = 2; $db = Zend_Db_Table::getDefaultAdapter(); $select = new Zend_Db_Select($db); $select->from('group_members') ->where('user_id = ?', $userId); //Right her

我只是想知道在Zend框架中执行db select的语法是什么,其中两个值是真的。示例:我想查找用户是否已经是组的成员:

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

您可以使用多个where子句,默认情况下这些子句将与一起:

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

以防有人想向具有多个参数的select添加OR条件

$select = $db->select()
         ->from('products',
                array('product_id', 'product_name', 'price'))
         ->where('price < ?', $minimumPrice)
         ->orWhere('price > ?', $maximumPrice);
$select=$db->select()
->来自(‘产品’,
数组('product\u id'、'product\u name'、'price'))
->式中(‘价格<?’,最低价格美元)
->或其中(‘价格>?’,$maximumPrice);

要查看Zend Select manual的更多信息,我在尝试执行第一个示例时遇到了一个异常:SQLSTATE[21000]:基数冲突:1241操作数应该包含1列奇怪的是,我过去使用PDO适配器对MySQL使用了这两种技术。我想我需要设置一个测试表。可能是您的数据库类型或适配器不支持我建议的语法。您使用的是什么数据库/适配器组合?我可以让第二个工作。第二个代码没有问题。我意识到我的问题是我处理的结果是错误的。我现在测试了第一个版本,发现它产生了以下SQL:SELECT
group\u members
*FROM
group\u members
WHERE(user\u id=1,1和group\u id=1,1)顺便说一句:您可以使用
print$SELECT->\u toString()
从语句中输出示例SQL。无论如何,似乎参数的传递和数组实际上不适用于Zend_Db_Select(我一定把它与直接使用PDO混淆了),所以我删除了答案中无效的部分。