4

我发现了一个非常酷的密码丢失脚本,但是这一行让我遇到了问题

$r = mysql_query('INSERT INTO `keys` (username,key, vreme) VALUES ("'.$user.'", "'.$acckey.'", "'.$keyexp.'"') or die(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 'key, vreme) VALUES ("123123", "1ed2f5100a26298a55b2935cbea7d4a0", "1337991670"' at line 1
4

6 回答 6

10

KEY保留字。如架构对象名称下所述:

如果标识符包含特殊字符或者是保留字,则在引用它时必须引用它。(例外:在限定名称中跟在句点后面的保留字必须是标识符,因此不需要引用。)

[删除]

标识符引号字符是反引号(“<code>`”):

mysql> SELECT * FROM `select` WHERE `select`.id > 100;

如果ANSI_QUOTES启用了 SQL 模式,还允许在双引号内引用标识符:

mysql> CREATE TABLE "test" (col INT);
ERROR 1064: You have an error in your SQL syntax...
mysql> SET sql_mode='ANSI_QUOTES';
mysql> CREATE TABLE "test" (col INT);
Query OK, 0 rows affected (0.00 sec)

所以:

mysql_query("INSERT INTO `keys` (username, `key`, vreme) VALUES ('$user', '$acckey', '$keyexp') ")
于 2013-12-23T18:56:28.243 回答
5

key保留关键字- 将其括在反引号中

`key`
于 2012-05-25T23:22:46.863 回答
2
 $r = mysql_query("INSERT INTO `keys` (username,`key`,vreme) VALUES ('$user', '$acckey','$keyexp')") or die(mysql_error());

Thank you all (:

于 2012-05-26T13:53:10.637 回答
1

还删除查询中的双引号并将查询封装在双引号而不是单引号中。

在查询中使用单引号来封装值。

于 2012-05-25T23:25:15.397 回答
1
$r = mysql_query("INSERT INTO `keys` (username,key,vreme) VALUES ('".$user."', '".$acckey."','".$keyexp."')") or die(mysql_error());
于 2012-05-25T23:30:41.497 回答
1

您是否在最后一个右括号和分号之间的查询末尾缺少单引号?

于 2012-05-25T23:31:24.210 回答