我有一个很大的(和愚蠢的)问题,一个简单的sql插入查询(mysqli),我已经使用这种格式没有错误,但现在没有工作..
请帮我找到问题..
//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;
Run Code Online (Sandbox Code Playgroud)
这是错误:
错误:SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行的'keys(keygen)VALUES('85faa7f618e433819d7e5ca57076377c')附近使用正确的语法
keys是MySQL保留字http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
将其包裹在反引号中或使用其他名称.
INSERT INTO `keys`
Run Code Online (Sandbox Code Playgroud)
边注:
MD5已经过时了,如果您打算将其用于密码用途,则会被视为已损坏.
使用CRYPT_BLOWFISH或PHP 5.5的password_hash()功能.
对于PHP <5.5使用password_hash() compatibility pack.