Heim > php教程 > php手册 > Yii deleteByAttributs 用法,慎用Dao的delete

Yii deleteByAttributs 用法,慎用Dao的delete

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-05-25 16:54:20
Original
1171 Leute haben es durchsucht

本文章来给各位同学介绍关于Yii deleteByAttributs 用法,慎用Dao的delete,希望此文章对大家会有所帮助。

Yii框架一定要慎用Dao的delete,一不小心它生不成条件的话,就变成了整表删除。

可以用ActiveRecord的deleteByAttributes或deleteAll方法相对不容易写错。

deleteByAttributes用法如下:

MyClass::model()->deleteAllByAttributes(array(
    'phone_number'=>$phoneNumber,
));
Nach dem Login kopieren

或者第一个参数为空,使用第二个条件参数

MyClass::model()->deleteAllByAttributes(array(),'`phone_number` = :phone_number',array(
    ':phone_number'=>$phoneNumber,
));
Nach dem Login kopieren

或者使用deleteAll():

MyClass::model()->deleteAll('`phone_number` = :phone_number',array(
    ':phone_number'=>$phoneNumber,
));
Nach dem Login kopieren

再来一个带in条件的

$condition = new CDbCriteria();
$condition->addCondition('status=:status');
$condition->params = array(':status'=>1);
$condition->addInCondition('user_id',array(100111,100221,100221));
User::model()->deleteAll($condition);Dao带in条件的示例
Yii::app()->db->createCommand()
->delete('mw_user', array('and', 'user_id=:user_id', array('in', 'position_id', array(1,2,3))),array(':user_id'=>121111));
Nach dem Login kopieren

但是请慎用DAO的delete,当你的条件写错一点,它将无法生成where条件,同时sql语句中也没有了where,但还不一定报错,结果就成了没有where的delete,结果会是整表被删除了。


本文地址:

转载随意,但请附上文章地址:-)

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage