-----------不知道有没有人提过,希望引起重视----

浏览:757 发布日期:2015/11/29
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;
}
评论(
后面还有条评论,点击查看>>