phpmyadmin错误:应为逗号或右括号

phpmyadmin错误:应为逗号或右括号,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我的医生总是警告我 应使用逗号或结束括号 当我尝试使用函数时 虽然它显示警告,但SQL语句可以成功执行 例如,下面是一段SQL代码 INSERT INTO payments (`amount`,`alloted`, `dateadded`, `modified`, `userid`) VALUES ( 100, DATE_ADD( NOW(), INTERVAL 6 MONTH),NOW(),NOW(),139107 ) 键入函数“NOW()”时,会出现红色下划线,这真的很烦

我的医生总是警告我

应使用逗号或结束括号

当我尝试使用函数时

虽然它显示警告,但SQL语句可以成功执行

例如,下面是一段SQL代码

    INSERT INTO payments (`amount`,`alloted`, `dateadded`, `modified`, `userid`)
    VALUES ( 100, DATE_ADD( NOW(), INTERVAL 6 MONTH),NOW(),NOW(),139107 )

键入函数“NOW()”时,会出现红色下划线,这真的很烦人

键入所有类型的sql函数时都会出现相同的错误

我已尝试重新安装phpmyadmin,但根本不起作用。 只有当我在web服务器上使用ubuntu时,才会出现此错误, 当我在本地主机上调试时,警告消息永远不会出现

下面是常见的错误消息

Error

Static analysis:

4 errors were found during analysis.

A comma or a closing bracket was expected (near "(" at position 40)
Unexpected token. (near "'123'" at position 41)
Unexpected token. (near ")" at position 46)
Unexpected token. (near ")" at position 47)

SQL query:

INSERT INTO accounts(pw) VALUES(PASSWORD('123'))
  • 您正在运行什么版本的PHPMyAdmin
  • 使用什么版本的MySQL
你可能需要把这个贴在网上

这不是SQL处理本身的错误;这是一个新的PhpMyAdmin SQL验证程序javasscript及其对SQL查询结构的推断的错误

SQL可能非常复杂(这是其吸引力的一部分),因此可以预料,在某些情况下,验证器会感到困惑


还有,

应该是:

INSERT INTO accounts(`pw`) VALUES(PASSWORD('123'))

注意背面的记号。PHPMyAdmin非常危险,因为列名(和表名)总是被反勾引用。

一个原因是:如果列/字段定义为非null,确保sql中相应的变量不为null或空,因为这会阻止插入

为什么不使用?我总是觉得phpMyAdmin是一个苍白的模仿。这可能与设置有关吗?我完全不知道为什么会发生。我相信一定有办法解决这个问题,但我不知道如何解决。这种语法验证似乎过于偏执。你确定你没有切换某些设置吗?我不这么认为,我刚刚重新安装了它,警告仍然出现。事实上,该语句并没有什么问题,特别是使用MySQL的
PASSWORD
函数对密码进行哈希运算是一个非常糟糕的主意。至少用一点。非常感谢!我使用的是ubuntu 16.0.4,所以所有东西都是用apt get下载的。mysql版本是
Distrib 5.7.19版本14.14
,我的phpmyadmin版本是
4.5.4.1deb2ubuntu2
,也许我应该将phpmyadmin更新到一个新版本,因为最新版本是4.7.3 xd,因为
pw
不是一个不必要的版本。@tadman不,但是phpmyadmin是非常有害的列名(和表名)始终使用反勾引号。我尝试了反勾引号,但效果不好。这是不正确的。可以愉快地插入空值。问题在于语法,而不是数据内容。
INSERT INTO accounts(`pw`) VALUES(PASSWORD('123'))