Yii框架一定要慎用Dao的delete,一不小心它生不成条件的话,就变成了整表删除。
可以用ActiveRecord的deleteByAttributes或deleteAll方法相对不容易写错。
deleteByAttributes用法如下:
代码如下 | 复制代码 |
MyClass::model()->deleteAllByAttributes(array( |
或者第一个参数为空,使用第二个条件参数
代码如下 | 复制代码 |
MyClass::model()->deleteAllByAttributes(array(),'`phone_number` = :phone_number',array( |
或者使用deleteAll():
代码如下 | 复制代码 |
MyClass::model()->deleteAll('`phone_number` = :phone_number',array( |
再来一个带in条件的
代码如下 | 复制代码 |
$condition = new CDbCriteria();
|
但是请慎用DAO的delete,当你的条件写错一点,它将无法生成where条件,同时sql语句中也没有了where,但还不一定报错,结果就成了没有where的delete,结果会是整表被删除了。