ThinkPHP怪现象:数据表新增字段后开发模式可更新运行模式无法更新

2023-11-10

一、情况说明

一个已经发布的程序中,数据库原有表article,字段原有id、content、title三个字段,原程序可以正常运行,通过大D方法可以正常的更新数据库。

现在要对这个程序进行更新,数据库表article现在增加字段media,在开发阶段(Debug=true)时程序可以正常运行后,将开发模式关闭(Debug=false),然后运行程序,发现media字段无法更新,想想可能是缓存的问题,于是将Runtime目录给删除掉,再次运行,OK!media字段可以更新了,于是将程序打包通过FTP发布到服务器后解压。

结果程序又无法更新了,想想也许是缓存的问题,好吧,将Runtime目录删除掉,再试,还是不行。好吧,在入口文件index.php中将DEBUG又重新设置为true,并覆盖到服务器上,测试,工作正常。

到底发生了什么问题呢?

二、发觉问题

将服务器上的入口文件中的DEBUG还是设置为FALSE,然后将页面信息PAGE_TRACE设置为TRUE,再次测试,发现并没有运行时的错误。

于是,我只好将数据库对象通过dump()方法打印出来,同时将更新到数据库中的数据集也通过dump()方法打印出来。这时候发现数据集中又media字段的信息,而数据库对象中的字段却没有media字段的信息。

我再次将DEBUG设置为TRUE打开开发模式,再次dump()数据库操作对象,这时数据库操作对象中居然有了media字段。于是乎只好确认是缓存问题了。

遂通过FTP软件将Runtime目录再次删除掉,这时候才注意到了一个奇怪的现象,Runtime目录删除不了,其中Rumtime目录下还存在着Data/_fields目录,多次删除都无法删除,只有一点可以说明,这个文件夹下还有文件。

也就是说,缓存没有清理干净!

三、解决问题

这里先说明一下,我服务器系统是Linux的,我自己电脑是Mac的,用的FTP软件是FileZilla。

既然文件没有清理干净又看不到,那只有可能是隐藏起来的了,于是乎在FileZilla的菜单中的Server菜单下找到了Force Showing hidden files,这样就可以显示所有隐藏文件了。

FileZilla强制显示隐藏文件

FileZilla强制显示隐藏文件

这下再看Runtime\Data\_fields\目录下就看到了这样几个隐藏文件:

 

FTP中的隐藏文件显示

FTP中的隐藏文件显示

奶奶的,原来所有数据表的结构信息都已经被缓存起来了的,而且这个缓存文件是在数据表被创建时创建的,而后来更新表字段后,这个数据表结构的缓存文件并没有被更新。

这下算是解决了,删除掉这几个表,将DEBUG设置为FALSE后,重新打开这个网站,OK,这几个文件又重新被建立了,而这时建立的是根据新表来建立的,这样,问题就得到了解决!

原文地址:http://www.xcoder.cn/index.php/archives/1100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ThinkPHP怪现象:数据表新增字段后开发模式可更新运行模式无法更新 的相关文章

  • PHP 中的encodeURI() ?

    PHP 中是否有一些不编码的encodeURI 函数 我现在用这个 function encodeURI url http php net manual en function rawurlencode php https develope
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子
  • Laravel Auth:attempt() 不会持久登录

    我在网上找到了许多有类似问题的资源 但似乎没有一个解决方案可以解决我的问题 当我使用以下代码登录用户时 一切看起来都很好 email Input get email password Input get password if Auth a
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 如何关闭未关闭的 HTML 标签?

    每当我们从数据库或类似来源获取一些经过编辑的用户输入内容时 我们可能会检索仅包含开始标记但不包含结束标记的部分 这可能会妨碍网站当前的布局 有客户端或服务器端的方法来解决这个问题吗 找到了一个很好的答案 使用 PHP 5 并使用 DOMDo
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

    我正在使用 PHP Selenium Webdriver 包装器Facebook https github com facebook php webdriver 任何人都可以给我一个如何单击或从选择下拉菜单中选择选项的示例吗 我已经尝试过这
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • PHP print_r() 中 _r 的含义是什么?

    我见过这个答案 https stackoverflow com questions 13103410 what does r suffix mean就这样 但我不确定它对于 PHP 是否相同 如果是 可重入的含义是什么 From PHP n
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • Stream_context_set_params 不适用于 ssh2.sftp 包装器

    我想使用类似的功能here http www php net manual en function stream notification callback php 请检查以下代码 function notify notification
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php

随机推荐

  • Flutter自定义折线图并添加点击事件

    本篇文章已授权微信公众号 guolin blog 郭霖 独家发布 前言 最近用Flutter做了一个天气类的app 我也是新手 对flutter理解还不是很深入 但是开发过程中的编程思想给了我很大的启发 Dart语言特性很优秀 单线程模型
  • 真正帮你实现—MapReduce统计WordCount词频,并将统计结果按出现次数降序排列

    项目整体介绍 对类似WordCount案例的词频统计 并将统计结果按出现次数降序排列 网上有很多帖子 均用的相似方案 重写某某方法然后 运行起来可能会报这样那样的错误 这里实现了一种解决方案 分享出来供大家参考 编写两个MapReduce程
  • SyncTools--->备份数据工具类

    只提供了一个接口 Sync
  • CSS中 z-index 的用法

    语法 z index auto 数值 inherit 参数 数值 数值即是盒子在当前的堆叠环境中的堆叠层次 这个盒子也会建立一个新的堆叠环境 auto 生成的盒子的堆叠层次在当前堆叠环境中是0 除非它是根元素 否则它不会建立一个新的堆叠环境
  • php开启xdebug扩展,PHP添加Xdebug扩展的方法

    PHP添加Xdebug扩展的方法 发布于 2014 11 28 12 15 54 143 次阅读 评论 0 来源 网友投递 Xdebug开源PHP程序调试器Xdebug是一个开放源代码的PHP程序调试器 即一个Debug工具 可以用来跟踪
  • RecycleView使用GridLayoutManager 中item显示不居中问题

    项目效果图就不截了 徒手画一个 将就一下 1 问题分析 图中 处是item距离手机边界的距离 我想刚开始使用GridLayoutManager的时候大部分人都会遇到这种距离不相等问题 在不理解原因的情况下 根布局咔咔一顿改也许你慢慢地就能找
  • 适配IPv6遇到的坑,终极解决方案

    6 1AppStore发布之后的应用要兼容IPv6 然而我上个星期发布的版本并没有因为没兼容而被拒 这次提交却遇到IPv6兼容问题 话不多说 上代码 NSString getIPWithHostName const NSString hos
  • Java中的多态和接口

    目录 1 多态 1 1 什么是多态 1 2 为什么使用多态 1 3 如何实现多态 1 4 向上转型 向下转型 2 抽象类 2 1 概念 2 2 抽象类和抽象方法的定义 3 接口 3 1 概念 3 2 java中的接口 3 3 接口特点 4
  • 跳转传参报错:SyntaxError: Unexpected end of JSON input

    小程序里面 SyntaxError Unexpected end of JSON input报错怎么解决 问题背景 小程序 经常有跳转传参的功能 一般带一个id或者name title之类很短的字段 但是如果带很多数据的话 很多人喜欢使用j
  • 数字水印学习系统之三 DWT操作

  • Invalid attempt to spread non-iterable instance错误

    在项目中需要对数组进行合并运算的时候产生的错误 经查询一般是扩展运算符报错 错误中指明了文件和行数 去打印一下查看对应的数据 结果显示后面这一个需要合并的数组是undefined 所以数组合并运算就报错了 去做对应处理 在data中的数据p
  • C++_字符串常量Literal的前缀, 整数后缀, unicode字符编码, utf-8

    catalog 字符串常量 前缀 只读区域 代码页 ASCII码 拓展ASCII Latin 1 GB xx ANSI标准 字符集 与 字节流 Unicode utf 8映射规则 BOM 代码页 编码 与 exe的关系 char数值化 ch
  • 输入两个正整数,用辗转相除法求出它们的最大公约数。(C语言)

    代码 include
  • 反病毒技术

    目录 UTM 反病毒概念 病毒 反病毒 病毒威胁场景 常见病毒传播途径 计算机病毒分类 病毒蠕虫木马对比 常见病毒行为特征 反病毒技术原理 单机反病毒 网关反病毒应用场景 智能感知引擎 IAE 防火墙反病毒检测技术 反病毒处理流程 应用例外
  • GEE 导入shp数据-裁剪影像

    1 Importing Table Data https developers google com earth engine guides table upload 需要注意在导入shp文件时 需要将包含 shp dbf shx prj四
  • tf好朋友之matplotlib的使用——contour等高线的绘制

    tf好朋友之matplotlib的使用 contour等高线的绘制 等高线绘制常用函数 plt contourf plt contour plt clabel 应用示例 大家都有学过地理噢 地理里面有一个很帅气的东西叫做 等 高 线 等高线
  • SQL中datetime和timestamp的区别

    初学PHP MySQL 在开发一个简单的报名程序时 要求在每一条新插入的记录后面添加一个日期字段 方便日后查询和排序 于是立即百度 发现可以使用datetime或timestamp两种日期类型来实现 这对于爱纠结的我来说是不被允许的 于是立
  • 黑马程序员SSM_SpringBoot笔记(自用)

    SpringBoot 1 简介 1 入门案例 新建模块 开发控制器类 在 controller 包下创建 BookController 代码如下 RestController RequestMapping books public clas
  • 说说synchronized关键字和volatile关键字的区别

    说说synchronized关键字和volatile关键字的区别 synchronized关键字和volatile关键字是两个互补的存在 而不是对立的存在 volatile关键字是线程同步的轻量级实现 所以volatile性能肯定比sync
  • ThinkPHP怪现象:数据表新增字段后开发模式可更新运行模式无法更新

    一 情况说明 一个已经发布的程序中 数据库原有表article 字段原有id content title三个字段 原程序可以正常运行 通过大D方法可以正常的更新数据库 现在要对这个程序进行更新 数据库表article现在增加字段media