0

PHPでmysqlデータベースに新しい行を挿入しようとしています。

パスワードは blob ですsbパスワードの両方を試しました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;
         }

error: SQL 構文にエラーがあります。1 行目の「key) VALUES (?,AES_ENCRYPT(?, ?),?)」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

5

keymysql の予約語です。あなたはそれを引用する必要があります:

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

ロジスティクス面では、パスワードのすぐ隣に暗号鍵を保管している場合、パスワードを暗号化する意味は何ですか? それは、銀行が 50 フィートの厚さのスチール製の壁で金庫を作り、チューインガムを少し使ってドアを「ロック」するようなものです。

于 2013-02-25T18:46:35.003 に答える