3.2.3 - 普通 - 已关闭
-----------不知道有没有人提过,希望引起重视--------------$where['no_this_field'] = 1;//数据表中没有no_this_field这个字段
$save['content'] = $content;
$model->where($where)->save($save);
执行这段代码的结果就是,整个表都被修改!!!
我的两百万条测试数据全都被改变!!!
幸亏是测试数据,否则后果非常严重
当数据表的字段发生改变的时候,很容易发生这样的问题
补充:where条件是数组的时候有这问题,如果直接where("aaaa=111")是没有问题的
******************不知道有没有什么影响^^
自己修复了,ThinkPHP\Library\Think\Model.class.php的448行 添加下面代码
if (empty($options['where'])) {
// 如果没有任何更新条件则不执行
$this->error = L('_OPERATION_WRONG_');
return false;
}
