无法使MySQL查询正常工作

时间:2013-02-14 22:52:01

标签: php mysql

得到了这个查询:

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

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

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

2 个答案:

答案 0 :(得分:9)

行是MySQL中的保留字 - 你必须用反引号来逃避这个词

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

btw .. mysql_ *已弃用,如manual中所述。更好地使用mysqli_ *或pdo

答案 1 :(得分: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());