OpenCart 3.0.3.8订单查询SQL语法错误求助
OpenCart 3.0.3.8订单查询SQL语法错误解决方法
错误原因
order是MariaDB/MySQL的保留关键字,直接在SQL语句的FROM子句中使用未转义的order作为表名,会触发语法错误。你提供的错误日志里的SQL语句:
SELECT * FROM order ORDER BY order_id DESC
就是问题核心。
解决步骤
- 定位SQL语句所在文件
- 后台订单列表的查询通常在
admin/model/sale/order.php - 前台用户订单的查询通常在
catalog/model/account/order.php
- 后台订单列表的查询通常在
- 修改SQL语句
找到包含SELECT * FROM order的代码行,给表名加上反引号转义,同时确保加上OpenCart的表前缀(默认是oc_),正确写法示例:
若直接写原生SQL,需处理成:$this->db->query("SELECT * FROM " . DB_PREFIX . "`order` ORDER BY order_id DESC");SELECT * FROM `oc_order` ORDER BY order_id DESC - 保存修改后的文件,刷新页面测试订单列表是否正常加载
额外提示
OpenCart的数据库表默认带有前缀(可在config.php中查看DB_PREFIX配置),不要直接写裸表名;遇到MySQL保留关键字作为表名/字段名时,必须用反引号包裹。
内容的提问来源于stack exchange,提问作者Vikas Mann
相关产品推荐
相关产品推荐

