如何在perl中使用fetchall_arrayref从查询中获取结果?

时间:2017-07-25 02:49:51

标签: perl dbi

我的代码:

my $sql_query = "select Event_datetime,Event,User from logs";
my $sth = $dbh->prepare($sql_query);
$sth->execute();
$testResults = $sth->fetchall_arrayref();
foreach my $row (@$testResults) {
    ($Event_datetime,$Event,$User) = @$row;
    print $query->h2($ID);
}

我想使用for循环来获取此查询的结果(一旦执行),使得每行都有一个数字,即由于行按顺序列出,我需要通过行号访问该行。

即。第1行为0;第2行是1;第3行是2,依此类推......

例如:

for ($i=0; $i < $noOfRows; $i=$i+1) {
    ($ID,$Event_datetime,$Event,$User) = @$testResults;
    print $query->h3($ID, ' ,', $Event_datetime, ',', $Event, ',', $User );
}

但是,此查询不会给我任何输出。如何通过行号访问特定行?

1 个答案:

答案 0 :(得分:0)

您还可以看到Perl How to get the index of last element of array reference?

my $lastRowIdx = $#$testResults;
for (my $i=0 ; $i<=$lastRowIdx ; $i++ ) {
  my $rref = $testResults->[$i];
  print "@$rref\n";
} # endfor;