MySQL错误:您的SQL语法中有错误

时间:2013-03-28 12:49:18

标签: php mysql sql sql-insert

我从mySQL收到此错误消息:

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 'key,time) 
VALUES ('FreeTest','86400')' at line 2

以下是代码:

if ((isset($_POST['key'])) && (isset($_POST['days']))) {

  $key = mysql_escape_string($_POST['key']);
  $days = mysql_escape_string($_POST['days'] * 86400);

  $add = "INSERT INTO licence
  (key,time)
  VALUES
  ('$key','$days')";

  $addkey = mysql_query($add);
}

1 个答案:

答案 0 :(得分:6)

名为KEY的列,它是列名之一,恰好是保留关键字,您需要使用反引号进行转义,这样您就不会遇到语法错误,{ {1}}也是一个保留的keyowrd,但mysql允许它在没有反引号的情况下使用。

TIME

作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection攻击。请查看下面的文章,了解如何防止它。通过使用INSERT INTO licence (`key`,time) VALUES ('$key','$days') ,您可以摆脱在值周围使用单引号。