Я нашел одну очень крутую болтовню для потерянного пароля, но эта строка вызывает у меня проблемы
$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());
Вам не хватает одной цитаты в конце вашего запроса между последней закрывающей скобкой и точкой с запятой?