我从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);
}
答案 0 :(得分:6)
名为KEY
的列,它是列名之一,恰好是保留关键字,您需要使用反引号进行转义,这样您就不会遇到语法错误,{ {1}}也是一个保留的keyowrd,但mysql允许它在没有反引号的情况下使用。
TIME
作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用INSERT INTO licence (`key`,time) VALUES ('$key','$days')
,您可以摆脱在值周围使用单引号。