首页 > 解决方案 > 迁移到新的 MYSQL 服务器会破坏使用 codeigniter 制作的站点

问题描述

我正在尝试将 MYSQL 服务器从W2008R2迁移到W2016。我已经安装了相同版本的 MYSQL (5.1.68),导出了 DB 并在新服务器上恢复了它。我在适用的地方复制了 MY.ini。我已经测试了连接性,一切正常。使用新的数据库连接更新 config.php 后,尝试加载 index.php 时出现以下错误。

错误号:1054

“订单子句”中的未知列“订单”

SELECT * FROM ( breaking_news) 按orderASC 排序

文件名:C:\inetpub\https\system\database\DB_driver.php

行号:328

当我回去检查 W2008 MYSQL 服务器上的数据库内容时,它也没有一个名为 order 的breaking_news列。我不知道该站点最初是如何使用无法返回结果的查询来工作的,现在想知道是否某些 MYSQL 服务器设置可能负责该站点在 2008 服务器上而不是在 2016 服务器上运行。我可以在数据库服务器 1 和服务器 2 之间来回切换,它将在 2008 年工作,在 2016 年不工作,据我所知,两个数据库在突发新闻表和数据库的其余部分中具有相同的内容。

标签: phpmysqlcodeigniter

解决方案


order是保留的 mysql 关键字https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-detailed-O

您应该在订单列中使用反引号

SELECT * FROM (breaking_news) ORDER BY `order` ASC

推荐阅读