【问题标题】:PHP 5.5 > PHP 5.6 Upgrade Causing MySQL Issues?PHP 5.5 > PHP 5.6 升级导致 MySQL 问题?
【发布时间】:2016-03-23 18:36:04
【问题描述】:

如果之前有人问过这个问题,我们深表歉意。我一直在高低搜索,但几乎没有什么结果,但我的搜索措辞可能不正确。

我今天尝试从 PHP 5.5 升级到 PHP 5.6,但它破坏了我所有使用 MySQL 的网站(所有其他仅 PHP 的代码都很好)。

我没有收到 MySQL 错误,我确实看到正在建立连接,但查询似乎没有命中 MySQL 服务器。相反,查询似乎被打印在屏幕上,实际上并没有被执行。

我有两个例子

1:

2:

示例 1 应该显示一个登录表单,示例 2 应该显示一个下拉框,供用户选择。登录表单和下拉框已绘制在屏幕上,但它们要么未正确填充,要么填充了变量名而不是结果。

我阅读了migration guide at PHP,甚至是关于 latin1 字符集的注释(我的是 UTF8),但那里没有太多内容。

有什么明显的我遗漏或我还没有读过的东西吗?还是我应该深入挖掘? Apache & PHP 日志似乎没有显示太多。由于我的谷歌搜索出现空白,我的选择已经不多了。有没有其他人经历过这种情况?

切换到 PHP 5.5 使所有网站恢复正常,没有出现上述错误/问题。切换回 PHP 5.6 再次引入了上述错误/问题,所以我相信它是 PHP 5.6 特有的,但我对它没有错误地执行 mysqli_connect 的事实感到困惑。

【问题讨论】:

  • 提高您的调试级别,看看日志中是否有内容?此外,检查是否打印了错误而不是记录错误。您可能处于开发环境/配置中。
  • 这与mysql无关。您的 php 代码没有执行,而是以纯文本形式发送出去。
  • 对不起,Marc B,我应该措辞更好,但老实说,我什至无法弄清楚问题出在哪里,所以我试图尽可能地描述。我有一些不是从 MySQL 中提取的静态页面,升级后它们运行良好。然而,我从 MySQL 中提取的所有页面都被破坏了(我现在意识到这完全是侥幸/巧合,正是我当时碰巧注意到的)

标签: php mysqli php-5.5 php-5.6


【解决方案1】:

您的问题似乎超出了 SQL 查询的范围。您的第一张图片显示正在输出的 PHP 代码。您确定您的配置没有改变,例如关闭short_open_tag

【讨论】:

  • 就是这样。谢谢!我没有意识到 5.6 有一个新的配置目录,或者它没有点击。我记得非常清楚地更改了 date.timezone,但我不知道我也在使用短标签。当我发现 5.6 的配置检查了 short_open_tags 时,它已关闭。我的 5.5 配置显示它。我觉得很傻,但我知道它必须是那样的。干杯!
【解决方案2】:

对我来说,这看起来像是带引号的代码问题。 您的 echo / print 可能在某处有错误或未转义的引号? 示例:

<html><?php $var = '"string $text string"; ?></html> // note the extra single quote!

这会导致与您的图片显示类似的问题。

【讨论】:

  • 我相信我会因为这个大声笑而受到抨击,但我确实使用 Dreamweaver,它倾向于识别这些类型的问题 - 当然,我会仔细检查,谢谢。
  • 每个人都有自己喜欢的编码软件,这里没有争论。找到问题了吗?
猜你喜欢
  • 2013-11-21
  • 2016-08-02
  • 2013-12-08
  • 2021-10-12
  • 1970-01-01
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
相关资源
最近更新 更多