在连接(。)或字符串中使用未初始化的值

时间:2014-01-08 11:44:25

标签: sql perl

我有这个错误:

  

Use of uninitialized value in concatenation (.) or string at...

这是我的代码:

$queryH= $dbh->prepare($query);
$queryH->execute();
my $i=0;
my $result;
while (@data = $queryH->fetchrow_array()) 
{
    $result=$data[$i];
    if ($result)
    {
        print "$result \n";
    }
    else
    {
        print "Records Not Found!\n";
        last;
    }
    print "\n";
    $i++;
}
print "\n\n";
$queryH->finish();
$dbh->disconnect();

我的代码中有什么错误?

错误在线:

$result=$data[$i];

1 个答案:

答案 0 :(得分:1)

您开始使用$i=0,并在while循环的每次传递中递增它。对于每行数据库结果,请查看$data[$i]一次。因此,对于第一行,请查看$data[0]。对于第二行数据,您可以查看$data[1],依此类推。在某些时候,您的$i(实际上是从零开始的行数)将高于每行的字段数。这会产生错误信息。

如果您在print "$i\n"区块的开头放入while,您将会看到我在说什么。