php - 错误 SQL (1064) : You have an error in your SQL syntax; Error after alias

标签 php mysql

当我尝试在数据库上运行简单的选择时,收到以下错误:

select count(id) as rows from table-name

Error SQL (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rows from table-name' at line 1

当我运行相同的命令时:

select count(id) as `rows` from table-name

它工作正常。

问题是第一个代码正在我的生产环境中运行,我无法更改应用程序的所有 SQL,我相信这与排序规则有关,但我尝试了几个,问题仍然存在。

MySQL version on production is 5.6 and dev is 8.0.3

最佳答案

发生这种情况是因为rows是MySql中的保留关键字。然而

SELECT COUNT(*) FROM ROWS

在我的系统中运行良好。可能你的本地系统是windows,服务器使用的是linux。

现在更改此设置取决于代码的组织方式。现在开发人员使用框架。所以你已经使用了一个好的 PHP 框架,那么你不必担心,只需用新的值更新表变量值并重命名数据库中的表,一切都会顺利。

如果您无法做到这一点,请将整个代码下载到本地服务器。并使用一些好的编辑器,即 Sublime 。首先查找整个应用程序中使用的 rows 关键字,然后如果您觉得安全,则只需使用查找和替换。砰!并再次上传代码。应该可以再次正常工作。

关于php - 错误 SQL (1064) : You have an error in your SQL syntax; Error after alias,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167576/

相关文章:

php - 如果我想保存来自使用 PHP 和 MySQL 的用户的文件,我应该使用什么数据类型?

php - 将自定义维度字段添加到可变产品的每个变体设置

php - 根据客户代码获取产品价格

当前一周的 PHP 工作日,为什么 date() 和 strtotime 下周需要?

mysql - 左连接?不返回零

php - 合并表以获得相同的 user_id

mysql - CakePHP,将 "LEFT JOIN"(关联模型中的字段)注入(inject)到我的更新尝试中

mysql - 创建 mysql 行/列

mysql - 数据库索引在父子表中扮演重要角色吗?

PHP - 定时 MySQLi 行更新?