尝试使用php将新行插入mysql数据库。
密码是blob 我在s
b
和bind_param
密码
$stmt = $this->db->prepare("INSERT INTO USERS (email,password,key) VALUES (?,AES_ENCRYPT(?, ?),?)");
if ( !$stmt ) {
echo "prepare failed\n";
echo "error: ", $this->db->error, "\n";
return;
}
$rc = $stmt->bind_param("ssss", $email, $password, $key, $key);
if ( !$rc ) {
echo "bind_param failed\n";
echo "error: ", $stmt->error, "\n";
return;
}
错误:您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便在第1行的“密钥”VALUES(?,AES_ENCRYPT(?,?),?)'附近使用正确的语法
我该如何解决这个问题?
答案 0 :(得分:5)
key
是mysql中的保留字。你必须引用它:
INSERT INTO users (email, password, `key`) ...
^---^--
在后勤方面,如果你将密码存储在它旁边,加密密码的重点是什么?它就像一座银行,建有一个50英尺厚的钢墙,然后用一点口香糖“锁住”。