Xampp+MariaDB环境下SEO模块JSON调用遇DataTables及SQL错误求助
解决DataTables无效JSON响应与MariaDB 10.2.7 SQL语法错误
嘿,我来帮你搞定这个问题!从你给出的报错信息来看,核心问题出在SQL语法上——你的SEO模块生成的SQL语句和MariaDB 10.2.7的语法规则冲突了,才导致DataTables拿不到有效的JSON响应。
问题根源
MariaDB 10.2及更高版本里,rows是官方定义的保留关键字。而你的模块里执行了这条SQL:
SELECT FOUND_ROWS() as rows
直接用rows当别名,数据库会把它当成关键字处理,自然就触发了1064语法错误,进而让DataTables的JSON响应失效。
具体修复步骤
你需要修改SEO模块里生成这条SQL的代码,给rows别名加上反引号(`)来转义,把语句改成:
SELECT FOUND_ROWS() as `rows`
操作起来很简单:
- 先定位SEO模块里负责数据库查询的代码文件(根据错误路径,大概率是模块内部的某个模型或工具类文件,而不是系统核心的
mysqli.php) - 找到生成
SELECT FOUND_ROWS() as rows的那一行代码 - 在
rows前后加上反引号,变成asrows`` - 保存修改后刷新页面,DataTables应该就能正常加载数据了
小提示
如果一时找不到SEO模块里的对应代码,别轻易改系统核心的mysqli.php——那会影响整个项目的数据库操作,优先找模块自身的代码修改才是稳妥的做法。
内容的提问来源于stack exchange,提问作者user9793188
相关产品推荐
相关产品推荐

