У меня большая (и глупая) проблема с простой вставкой SQL для запроса (MySQL), я уже использовал этот формат без ошибок, но теперь не работает ..
пожалуйста, помогите мне найти проблему ..
//Get admin form details
$a_user = $_POST["a_user"];
$a_pass = $_POST["a_pass"];
$a_pin = $_POST["a_pin"];
if($a_user == "$admin_username" && $a_pass == "$admin_password" && $a_pin == "$admin_pin"):
$keygen = md5(microtime().rand());
$mysqli->query("INSERT INTO keys (keygen) VALUES ('$keygen')") or die(mysqli_error($mysqli));
$mysqli->close;
else:
header("Location: ?page=admin&error=1");
endif;
Вот ошибка:
Ошибка: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с «keys (keygen) VALUES (’85faa7f618e433819d7e5ca57076377c’) ‘в строке 1
keys
такое зарезервированное слово MySQL http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
Или оберните это в кавычки или используйте другое имя для этого.
INSERT INTO `keys`
Примечание:
MD5 устарел и считается сломанным, если вы собираетесь использовать его в целях пароля.
использование CRYPT_BLOWFISH или PHP 5.5 password_hash()
функция.
Для PHP < 5.5 использовать password_hash() compatibility pack
.
Других решений пока нет …