MySQL: «ошибка в синтаксисе SQL … рядом с ключом …»?

Я нашел одну очень крутую болтовню для потерянного пароля, но эта строка вызывает у меня проблемы

$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 

KEY – это зарезервированное слово . Как описано в разделе « Имена объектов схемы» :

Если идентификатор содержит специальные символы или зарезервированное слово, вы должны указывать его всякий раз, когда вы ссылаетесь на него. (Исключение: зарезервированное слово, которое следует за периодом в квалифицированном имени, должно быть идентификатором, поэтому его не нужно указывать).

  [ удаление ] 

Символом кавычки идентификатора является обратная сторона (" ` "):

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

Если ANSI_QUOTES режим 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') ") 

key – зарезервированное ключевое слово – заключить его в обратные ссылки

 `key` 
  $r = mysql_query("INSERT INTO `keys` (username,`key`,vreme) VALUES ('$user', '$acckey','$keyexp')") or die(mysql_error()); 

Спасибо вам всем (:

также удалите двойные кавычки в запросе и инкапсулируйте запрос в double вместо одиночных кавычек.

используйте одинарные кавычки в запросе для инкапсуляции значений.

 $r = mysql_query("INSERT INTO `keys` (username,key,vreme) VALUES ('".$user."', '".$acckey."','".$keyexp."')") or die(mysql_error()); 

Вам не хватает одной цитаты в конце вашего запроса между последней закрывающей скобкой и точкой с запятой?