[英]Error in SQL syntax when I try a query
i've a big (and stupid) problem with a simple sql insert to query (mysqli), i've already used this format without errors, but now didn't work.. 我在使用简单的sql插入查询(mysqli)时遇到了一个大(愚蠢的)问题,我已经使用了这种格式,没有错误,但是现在不起作用。
please help me find the problem.. 请帮助我发现问题..
//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;
Here is the error: 这是错误:
Error: You have an error in your SQL syntax; 错误:您的SQL语法有错误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'keys (keygen) VALUES ('85faa7f618e433819d7e5ca57076377c')' at line 1 检查与您的MySQL服务器版本相对应的手册以获取在第1行的'keys(keygen)VALUES('85faa7f618e433819d7e5ca57076377c')'附近使用的正确语法
keys
is MySQL reserved word http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html keys
是MySQL保留字http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
Either wrap it in backticks or use another name for it. 可以将其包装在反引号中,也可以使用其他名称。
INSERT INTO `keys`
Sidenote: 边注:
MD5 is old and considered broken if you're intending on using it for password purposes. MD5较旧,如果您打算将其用于密码目的,则认为它已损坏。
Use CRYPT_BLOWFISH or PHP 5.5's password_hash()
function. 使用CRYPT_BLOWFISH或PHP 5.5的password_hash()
函数。
For PHP < 5.5 use the password_hash() compatibility pack
. 对于PHP <5.5,使用password_hash() compatibility pack
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.