我有一个很大的(和愚蠢的)问题,一个简单的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;
这是错误:
错误:您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在密钥(keygen)附近使用VALUES(' 85faa7f618e433819d7e5ca57076377c')'在第1行
答案 0 :(得分:6)
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
。