yii2的yii\db\ActiveRecord::deleteAll()请慎用
来源:互联网 发布:天猫魔盒用什么软件 编辑:程序博客网 时间:2024/05/18 01:52
通常情况下框架的删除数据的方法是需要加条件才能够删数据的,基本上市框架强制的要求。没有添加删除条件是删除不了的,但是yii2框架就不一样。如果你操作不当就只能去早点儿阅读下《mysql从精通到跑路》这本书了。
yii2的deleteAll($condition)如果不传条件会整张表的数据都删除,这就是后果,从此你就可以跑路了,下边我们要分析下原因。
public static function deleteAll($condition = '', $params = []){ $command = static::getDb()->createCommand(); $command->delete(static::tableName(), $condition, $params); return $command->execute();}
以上是deleteAll()的静态方法,重点实现还是调用了delete()方法,再来看看delete()方法
public function delete($table, $condition, &$params){ $sql = 'DELETE FROM ' . $this->db->quoteTableName($table); $where = $this->buildWhere($condition, $params); return $where === '' ? $sql : $sql . ' ' . $where;}方法中使用buildWhere()来构建条件语句。去看看
public function buildWhere($condition, &$params){ $where = $this->buildCondition($condition, $params); return $where === '' ? '' : 'WHERE ' . $where;}看到了吧
return $where === '' ? '' : 'WHERE ' . $where;这句,竟然判断如果为空则返回空。
本文为魏永强原创作品未经允许不得转载:MarsWill »yii2的yii\db\ActiveRecord::deleteAll()请慎用
0 1
- yii2的yii\db\ActiveRecord::deleteAll()请慎用
- Yii deleteAll
- yii activerecord 的生命周期
- Yii-- DeleteAll连表删除报错问题的解决方法
- YII2-数据库yii\db\Query 查询方法
- Mongodb中使用db.collection.copyTo()方法遇到的坑,请慎用!
- Yii2.X ActiveRecord的部分类图
- yii的db解读
- YII2.0框架(四) 数据库操作yii\db\Commond
- php yii2提示Database Exception – yii\db\Exception错误
- YII2.0的yii文件
- Yii deleteByAttributs 用法,慎用Dao的delete
- Yii2学习之ActiveRecord
- yii2.0 基于ActiveRecord 封装的curd操作
- YII优化 ActiveRecord schema
- Yii CFormModel ActiveRecord 详解
- yii ActiveRecord 学习收集
- Yii ActiveRecord 简介
- Mac 密码丢失修改mysql密码
- 提高VR帧率的一些性能标准
- equals( )与==
- 项目列表
- LaunchPad上有图标,但是应用程序中没有如何删除
- yii2的yii\db\ActiveRecord::deleteAll()请慎用
- python 可变参数函数定义* args和**kwargs的用法
- Visual Studio的调试技巧
- Apache Ignite 入门(1) hello world
- write()的奥秘
- Hibernate的检索策略和优化
- Zookeeper Api(java)入门
- 排序算法
- Shell排序(数组)