2013-05-02 18 views
1

今天我需要你的幫助。我實際上編寫了一個註冊表格,並且每次新註冊時,我都生成了一個具有uniqid()函數的密鑰。在數據庫中註冊生成的uniqid

問題是,當我嘗試插入我的生成的密鑰在我的數據庫我有此錯誤:

Erreur: SQLSTATE[42000]: Syntax error or access violation: 1064 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) VALUES('','test','test','[email protected]','7c4a8d09ca3762af61e59520943dc26494' at line 1

在我的數據庫中的鍵值設置爲VARCHAR(90)領域。

我在Google或這裏尋找答案,但我還沒有找到任何人有同樣的問題

有誰知道我的問題在哪裏?

THKS, Antho

編輯:

這裏是我的SQL請求:

$key = uniqid(); 

try{ 
    $sql = "INSERT INTO users(id,name,firstname,mail,pass,status,avatar,key) VALUES('','$name','$firstname','$mail','$pass','$status','$avatar','$key')"; 
    $req = $db->exec($sql); 

    echo 'OK'; 
}catch(PDOException $e){ 
    echo 'Erreur: '.$e->getMessage(); 
} 
+0

寫完你的SQL查詢後,我們可以說些什麼。 – zkanoca 2013-05-02 22:27:23

+0

你可以添加整個查詢嗎? – nicolas 2013-05-02 22:27:24

+0

你能否與我們分享您的疑問,以便更好地掌握問題? – BK004 2013-05-02 22:28:14

回答

3

我認爲關鍵是一個MySQL的保留字。嘗試轉義它與

`key` 
+0

謝謝!現在它完美地工作:D – Anthodpnt 2013-05-02 22:35:19

+0

它就像'PRIMARY KEY'一樣。供參考:https://dev.mysql.com/doc/refman/4.1/en/reserved-words.html – 2013-05-02 22:38:44