2013-12-22 154 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各地列。