2013-12-22 124 views
0

我有一个奇怪的问题:我得到这个错误;SQL报价失败查询

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 = 'aaaa' 
AND expire >= '1387730046'' at line 1 

您看到2次'结束。但是SQL是;

"SELECT * FROM mails WHERE key = '".$mysql->real_escape_string($_GET['key'])."' 
AND expire >= '".strtotime(date("Y-m-d H:i:s"))."'" 

所以,我不明白为什么我会得到这个错误。有人知道我做错了什么吗?

+0

对于错误消息来说,不常见的是由MySQL产生的信息。 – Strawberry

回答

2

单词key是MySQL中的保留字(请参阅here)。所以,你需要逃避它:

SELECT * FROM mails WHERE `key` = '".$mysql->real_escape_string($_GET['key'])."' AND expire >= '".strtotime(date("Y-m-d H:i:s"))."'" 
0

查询应该是:

"SELECT * FROM mails WHERE `key` = '".$mysql->real_escape_string($_GET['key'])."' AND expire >= '".strtotime(date("Y-m-d H:i:s"))."'" 

始终使用parentesis各地列。