MYSQL INSERT语法错误,行号不正确


MYSQL INSERT syntax error with incorrect line number

我目前正在创建一个登录系统,其中一部分当然是注册。直到现在,一切都很顺利,我犯了一个错误。

我已经尽可能彻底地研究了这个问题,但我找不到解决方案,因为它给了我一个错误的行号。

我得到的错误是:

Error: 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 '1' at line 1

我的SQL查询是

$token = (round(microtime(true) * 1000));
$query = mysql_query("INSERT INTO "
            . "`users` "
            . "(name, password, email, token) "
            . "VALUES "
            . "('$_POST[user]'"
            . ",'".hash('sha512',$_POST['pass'])."'"
            . ",'$_POST[email]'"
            . ",'$token')") or die(mysql_error());
    if (mysql_query($query) === TRUE) {
        //echo "Sucsessfuly registered! Check your email for a confirmation link.";
    } else {
        echo "Error: " . mysql_error();
    }

(这是而不是文件的第一行,它是22d)当代码运行时,即使它抛出错误,它仍然正确地将值插入到表中。

此外,当我在phpmyadmin中运行相同的查询时,它运行得很好,没有任何错误。

在过去的3个小时里,我一直在努力解决这个错误,所以如果有任何帮助,我们将不胜感激;)

您要调用mysql_query两次:首先使用SQL,然后使用查询的结果,就好像它是一个查询一样。您得到的错误是因为$querytrue,当作为字符串处理时,它会变成1

或者您应该将$query设置为SQL字符串:

$query = "INSERT INTO ...";
if (mysql_query($query)) {
    ...
} else {
    ...
}

或者您应该只检查$query:的值

$query = mysql_query(...);
if ($query) {
    ...
} else {
    ...
}