2009-12-04 24 views
6

Tôi chỉ tự hỏi cú pháp là chọn db trong khung công tác Zend nơi hai giá trị là đúng. Ví dụ: Tôi muốn tìm thấy nếu người dùng đã là thành viên của một nhóm:Zend Framework: Cách chọn DB với nhiều thông số?

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

Trả lời

15

Bạn có thể sử dụng nhiều nơi điều khoản đó sẽ được ANDed cùng theo mặc định:

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

Tôi nhận được ngoại lệ khi cố gắng thực hiện ví dụ đầu tiên: SQLSTATE [21000]: Vi phạm bản thân: 1241 Toán tử phải chứa 1 cột (s) – Andrew

+0

Lạ, tôi đã sử dụng cả hai kỹ thuật trong quá khứ so với MySQL bằng bộ điều hợp PDO . Tôi đoán tôi sẽ cần thiết lập một bảng để kiểm tra. Có thể là loại cơ sở dữ liệu hoặc bộ điều hợp của bạn không hỗ trợ cú pháp mà tôi đã đề xuất. –

+0

Bạn đang sử dụng kết hợp cơ sở dữ liệu/bộ điều hợp nào? –

4

Chỉ Trong trường hợp ai đó muốn để thêm một điều kiện OR đến một lựa chọn với nhiều params

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

Đối xem nhiều hướng dẫn Zend Chọn Docs: zend.db.select

Các vấn đề liên quan