thinkphp在更新操作时的bug

浏览:576 发布日期:2017/03/12
3.2.3 - 致命 - 未处理
直接举例子吧:
例如我有一个Model类
在此类下我进行对应数据库表的更新操作

$update_datas=array("key"=>"val"); //假设这是即将要进行更新的字段和数据

$this->where(array("filed"=>"value"))->setField(update_datas);

这下问题就来了!如果程序员自己不小心在写"filed"时不小心写错了(本数据库表中不存在的字段),那么这个操作将导致这张表的所有数据记录都被此更新操作,难道这个bug不致命?如果在进行更新操作前判断一下where条件中的filed是否为本表真实存在的字段,是不是更安全些?

就算是原生的sql在mysql客户端执行更新操作时,不存在的字段肯定是无法作为条件进行更新操作的,不知道tp官方这里是这么封装的?

去年遇到一次,没留意,今天又遇到了!建议大家注意一下、
评论(
后面还有条评论,点击查看>>