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

标签 php mysql

我目前正在创建一个登录系统,其中一部分当然是注册。到目前为止一切顺利,但我遇到了错误。

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

我得到的错误是:

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 {
    ...
}

关于php - MYSQL INSERT 语法错误,行号不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424910/

相关文章:

c# - 使用 C# 迭代 MySql 数据库,在文本框的 foreach 或 while 循环中显示行

php - 尝试根据 1 个 SELECT 语句中另一个表中的另一列检索的信息,从 1 个表中的 1 列获取信息

mysql循环语法错误

Java:HtmlUnit 效率 relacing PHP CURL?

php - 在 laravel 5.4 更新自动 Created_at 和 Updated_at 列

php - 检查数据库中是否存在单词以及相邻列的输出数据是否为真

php - 从查询中提取 MySQL 数据

php - 用于 wordpress 或 Drupal 的吉他指法谱和乐谱导向插件

php - Symfony2 多对多复选框

mysql - Ubuntu 17.10 - 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)