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

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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,125评论 2 89
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,627评论 25 709
  • 入夜,静悄悄,房间里漆黑一片,床上小姑娘安然熟睡,只有窗帘隐隐透着点朦胧的光。写字桌上摊着一本书,一个笔记本。是小...
    国宴阅读 3,258评论 1 0
  • 贤哥还在肚里三个月时我们就离开老屋住进下泡水的新房里。如今贤哥已快两周岁,我们第一次再住老屋。时间过得真快,在老屋...
    燕纪事阅读 2,405评论 0 1
  • ag-Grid 是一个企业级的 JavaScript 数据网格。 ag-Grid 的目的是提供可用于构建企业级应用...
    OSC开源社区阅读 5,819评论 0 4