2013-05-28 21 views
7

Tôi có mảng với id và muốn xóa tất cả chúng bằng idYii: deleteAll và IN tuyên bố

$membersId = array('1','2','3'); 
$inStatement = implode(',', $membersId); 

//dont work! 
TRatingMembers::model()->deleteAll(array('member_id IN (:member_id)'), 
    array(':member_id' => $inStatement)); 

Làm thế nào để xóa tất cả các hàng với một giao dịch?

Trả lời

4
if (!empty(membersId)) { 
    $memberIds = implode(', ', $membersId); 
    TRatingMembers::model()->deleteAll('member_id IN (' . $memberIds . ')'); 
} 
+0

có an toàn không? SQL-Injection ?! –

+0

Sẽ an toàn nếu mảng của bạn chứa các giá trị hợp lệ. –

+1

Tôi hiểu rồi. Bạn cũng có thể xem xét điều này: 'Yii :: app() -> db-> createCommand() -> delete ('video', mảng ('IN', 'id', $ extraIds));' –