我有此Perl代碼錯誤值:的Perl DBI選擇提供使用bind_columns
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的計數。
我真的不知道這裏出了什麼問題。
其他人看到我失蹤的東西嗎?
你使用的是'DBD :: mysql'嗎? – Annjawn 2012-08-14 21:26:51
我正在使用使用DBI; – skeniver 2012-08-14 21:27:13
嘗試'$ count = $ sql-> fetchrow_array();'而不是'$ sql-> bind_columns(\ $ count); $ sql-> fetch;'看看'$ count'的結果是什麼。 – Annjawn 2012-08-14 21:32:08