私はこのPerlコードを持っています:
my $cmd = "
SELECT COUNT(id)
FROM tblUsers
WHERE UPPER(username) = UPPER(?) AND password = ?
";
db_connect();
my $sql = $dbh->prepare($cmd);
my $count = 2;
$sql->execute(
$args{login_username},
crypt($args{login_password}, $args{login_username})
) or die "SQL Error: ".$sql->errstr;
$sql->bind_columns(\$count);
$sql->fetch;
これは 0 を返していますが、1 を返す必要があります
次を出力した場合:
$msg = "wrong username/password: $count;$args{login_username};$args{login_password};" . crypt($args{login_password}, $args{login_username});
私は得る:
wrong username/password: 0;skeniver;password;skh9dtk2bCasY
そのcrypt
部分はまさに私がデータベースに持っているものです。MySQL で同じ値を実行すると、カウント 1 が返されます。
ここで何が問題なのか本当にわかりません。
他の誰かが私が見逃しているものを見ていますか?