ThinkPHP3.2数据字段缓存造成的bug

前几天,数据自动同步出现了bug,使用的框架是tp3.2,一条本该带条件的更新语句,结果不带条件的帮我把数据全部更新了。辛亏影响的用户数据才一百多,手动修复了一下午。

又去翻了一下文档,发现文档有写,不能说是tp的bug。只能说是没认真看文档。

看了一下源码,tp在操作数据的时候,会把不存在的字段自动忽略掉。

正式环境默认开启数据字段缓存,而缓存机制是每个模型对应一个字段缓存文件(注意:并非每个数据表对应一个字段缓存文件),命名格式是:数据库名.数据表前缀+模型名(小写).php

因为之前没留意这个,数据库里弄了两个表app_dc_video和app_ky_video,表是不同的模块使用的,结构和数据都不一样,第一个是表是另一个同事后来加的,我在我的代码模块里命名了videoModel,他后来也在他代码模块用了videoModel,两个表的字段缓存名字是一样的,所以肯定有一个会覆盖另一个。导致数据更新出现了bug。

恩,故事告诉我们,使用框架一定要通读文档。

你可能感兴趣的:(ThinkPHP3.2数据字段缓存造成的bug)