2013-05-28 3 views
7

INが、私はIDの配列を持っているし、1つのトランザクションですべての行を削除する方法IDのYii:DELETEALLと声明

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

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

ですべてそれらを削除したいですか?

答えて

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

それは安全ですか? SQLインジェクション? –

+0

配列に有効な値が含まれている場合は安全です。 –

+1

私はそれを手に入れました。 'Yii :: app() - > db-> createCommand() - > delete( 'video'、array( 'IN'、 'id'、$ extraIds));' –