これはばかげていると思いますが、わかりません!
ユーザーテーブルがあります:
CREATE TABLE tbl_users (
usr_id INT NOT NULL AUTO_INCREMENT ,
usr_name VARCHAR( 64 ) NOT NULL DEFAULT '' ,
usr_surname VARCHAR( 64 ) NOT NULL DEFAULT '' ,
usr_pwd BLOB NOT NULL ,
usr_level INT( 1 ) NOT NULL DEFAULT 0,
PRIMARY KEY ( usr_id )
) ENGINE = InnoDB;
1 つのレコードで:
INSERT INTO tbl_users ( usr_id, usr_name, usr_pwd, usr_level )
VALUES (NULL, 'SU', AES_ENCRYPT('SU', SHA2('MyPwd', 512)), 2);
ここで、このクエリを (phpMyAdmin で) 実行すると、レコードが取得されます。
SELECT usr_id, usr_name, usr_surname, usr_level,
AES_DECRYPT(usr_pwd, SHA2('MyPwd', 512)) as usr_pwd
FROM tbl_users
WHERE usr_name='SU';
しかし、パスワード チェックを追加すると、空の結果セットが得られます。
SELECT usr_id, usr_name, usr_surname, usr_level,
AES_DECRYPT(usr_pwd, SHA2('MyPwd', 512)) as usr_pwd
FROM tbl_users
WHERE usr_name='SU' and usr_pwd='SU';
どこが間違っていますか?