MySQL语法错误:我卡住了。

3
$queryStatus = mysql_query("INSERT into `database`.`users` (`first`, `last`, `pass`, `user`, `id`, `email`, `active`) VALUES ('$first', '$last', '$password', '$user', NULL, '$email', '0'") or die("BAD QUERY: " . mysql_error());

这个ID字段是NULL的,因为它是自增的。但是它却报了一个语法错误,我真的找不出原因。请帮忙看一下。


2
下次您发布问题时,如果因为语法错误而遇到困难,请包含实际的错误信息,这样更容易发现问题所在。 - Berry Langerak
3个回答

3

忽略ID字段,它会自动插入值:

$queryStatus = mysql_query("INSERT into `database`.`users` (`first`, `last`, `pass`, `user`, `email`, `active`) VALUES ('$first', '$last', '$password', '$user', '$email', '0'") or die("BAD QUERY: " . mysql_error());

您的查询似乎格式错误(末尾引号放置不正确),我不确定具体是PHP还是其他语言,但这应该可以解决:

$queryStatus = mysql_query("INSERT into `database`.`users` (`first`, `last`, `pass`, `user`, `email`, `active`) VALUES ('$first', '$last', '$password', '$user', '$email', '0')");

也就是说,从你的列列表中排除它(如first、last、pass等),然后只填充你拥有的值列。 - Brad Christie
由于在VALUES子句中缺少括号,仍存在语法错误。 - a'r
@a'r 是的,我后来发现了一个语法错误,我认为是闭合引号的问题。 - Tom Gullen
INSERT INTO 中的 ,id,,NULL, 不是错误。 - ypercubeᵀᴹ
@yper,我知道,但我想提出建议,我相信我已经找到了更新中的语法错误。 - Tom Gullen
好的,但是当有人第一次阅读您的答案时,他们会认为您暗示包含“id”导致错误。 - ypercubeᵀᴹ

3
您没有关闭查询中的VALUES ()部分。在结尾处需要有一个闭括号 - 不要将其与mysql_query函数调用的闭括号混淆。

0

你在“或者死亡”之前的闭合括号前面多了一个双引号(")。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接