我有此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