php - 迁移到新的 MYSQL 服务器会破坏使用 codeigniter 制作的站点
问题描述
我正在尝试将 MYSQL 服务器从W2008R2迁移到W2016。我已经安装了相同版本的 MYSQL (5.1.68),导出了 DB 并在新服务器上恢复了它。我在适用的地方复制了 MY.ini。我已经测试了连接性,一切正常。使用新的数据库连接更新 config.php 后,尝试加载 index.php 时出现以下错误。
错误号:1054
“订单子句”中的未知列“订单”
SELECT * FROM (
breaking_news
) 按order
ASC 排序文件名:C:\inetpub\https\system\database\DB_driver.php
行号:328
当我回去检查 W2008 MYSQL 服务器上的数据库内容时,它也没有一个名为 order 的breaking_news
列。我不知道该站点最初是如何使用无法返回结果的查询来工作的,现在想知道是否某些 MYSQL 服务器设置可能负责该站点在 2008 服务器上而不是在 2016 服务器上运行。我可以在数据库服务器 1 和服务器 2 之间来回切换,它将在 2008 年工作,在 2016 年不工作,据我所知,两个数据库在突发新闻表和数据库的其余部分中具有相同的内容。
解决方案
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
推荐阅读
- vue.js - VueJS 基于 Random Slug 的 URL 的最佳方法
- intellij-idea - 我班级上的数字图标是什么意思?
- kubernetes - 为 AKS 群集使用托管标识功能的最佳方法是什么?
- android - Android Studio Flutter - 虚拟设备正在加载或卡住
- docker - x509:由未知机构签署的证书(可能是因为“crypto/rsa:...authority certificate”osmacbook”)
- javascript - 如何实时查询firestore wrt?
- c++ - for 循环是否会在 C++ 中创建向量、数组或任何其他数据类型的副本?
- php - 结合这两个查询并返回最匹配的一个
- spring-mvc - 使用 Thymeleaf 从 URL 获取属性
- firebase - Firebase Analytics:关于 user_engagement 事件的问题