0

得到这个查询:

mysql_query("INSERT INTO leaderboard (user_id, lines) 
    VALUES (". $rowUser['id'] .",". $linesDone .")") or die("ERROR 29: ". mysql_error());

给出这个错误:

ERROR 29: 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 'lines) VALUES (1,50)' at line 1

我已经尝试了所有类型的语法,比如在查询中使用 ´´ 和 '',但所有的结果都是大约。同样的错误。

任何人都可以看到有什么问题吗?

4

2 回答 2

9

Lines 是 MySQL 中的保留字 - 你必须用反引号转义这个词

mysql_query("INSERT INTO leaderboard (user_id, `lines`) 
VALUES (". $rowUser['id'] .",". $linesDone .")") or die("ERROR 29: ". mysql_error());

顺便说一句.. mysql_* 如手册中所述已弃用。最好使用 mysqli_* 或 pdo

于 2013-02-14T22:54:28.477 回答
0

保护您的查询。

mysql_query(
         sprintf("INSERT INTO leaderboard (user_id,`lines`) 
                  VALUES ('%d','%s')",
        mysql_real_escape_string($rowUser['id']),
        mysql_real_escape_string($linesDone)
) or die("ERROR 29: ". mysql_error());
于 2013-02-14T23:04:25.290 回答