0

尝试使用 php 向 mysql 数据库插入新行。

密码是 blob我都试过sbbind_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 行的 'key) VALUES (?,AES_ENCRYPT(?, ?),?)' 附近使用正确的语法

我该如何解决这个问题?

4

1 回答 1

5

key是mysql中的保留字。你必须引用它:

INSERT INTO users (email, password, `key`) ...
                                    ^---^--

在后勤方面,如果您将加密密钥存储在密码旁边,加密密码有什么意义?这就像一家银行用 50 英尺厚的钢墙建造了一个金库,然后用一点口香糖“锁”了门。

于 2013-02-25T18:46:35.003 回答