Yii: deleteAll and IN statement
15,204
Solution 1
$criteria = new CDbCriteria;
$criteria->addInCondition('member_id',$membersId);
TRatingMembers::model()->deleteAll($criteria);
http://www.yiiframework.com/doc/api/1.1/CDbCriteria#addInCondition-detail
Solution 2
if (!empty(membersId)) {
$memberIds = implode(', ', $membersId);
TRatingMembers::model()->deleteAll('member_id IN (' . $memberIds . ')');
}
Author by
Oleg Beat
Updated on July 28, 2022Comments
-
Oleg Beat over 1 year
I have array with ids and want to delete all them by id
$membersId = array('1','2','3'); $inStatement = implode(',', $membersId); //dont work! TRatingMembers::model()->deleteAll(array('member_id IN (:member_id)'), array(':member_id' => $inStatement));
How to delete all rows with one transaction?
-
Hamzeh Soboh about 7 yearsIs it safe? SQL-Injection?!
-
Valery Viktorovsky about 7 yearsIt's safe if your array contains valid values.
-
Hamzeh Soboh about 7 yearsI got it. You can also consider this:
Yii::app()->db->createCommand()->delete('video', array('IN', 'id', $extraIds));