简单的perl mysql查询不起作用

时间:2013-11-22 02:54:34

标签: mysql perl

我已经离开了mysql和perl游戏已经有好几年了,似乎无法做到这一点。我有一个只有3列的表。 'cnt'就是其中之一。我想做的就是在'name'上查询表,看看是否存在名称。如果是,我想捕获'cnt'的值。该表有一个testName记录,值为2我手动添加。运行此脚本时,它将返回空。

my $count;
my $pop = qq(SELECT cnt FROM popular WHERE name="testName"); 
my $sth = $dbh->prepare($pop); 
$sth->execute() or die $dbh->errstr; 

my @return; 

while (@return = $sth->fetchrow_array()) { 
   $count = $return[1]; 
} 

print "our return count is $count";

任何人都明白我做错了吗?

2 个答案:

答案 0 :(得分:3)

你可能意味着

$count = $return[0];

答案 1 :(得分:0)

根据perl doc on mysql

fetchrow_arrayref的替代方法。获取下一行数据并将其作为包含字段值的列表返回。     由于您选择 cnt 作为返回值,因此@return的大小为1,但您将其误解为符合查询条件的结果数。不,不是这样!请有仔细阅读perl doc。