Количество рядов в скаляре - Perl

Я видел много статей на эту тему, и ни одна не работает для меня. У меня есть этот код -

$var1->{reference} = sql_get_rows();   


sub sql_get_rows(){
    etc
    return ($sth->fetchall_arrayref());
 };

То, что я хочу сделать, это знать, сколько строк найдено в операторе SQL и хранится в $var1->{reference} (или мне будет предложен лучший способ решения проблем. Я написал, что такое $ var1 -> {reference} хранение ниже.

warn Dumper ($var1->{reference});

'$VAR1 = [
      [
        26412502,
        'initial'
      ],
      [
        49246682,
        'title'
      ],

Обратите внимание, что я знаю, как найти COUNT с помощью оператора SQL, это не то, что я хочу знать.

Спасибо

1 ответ

Решение

При использовании DBI, используйте метод строк

my $sth = $dbh->prepare(q{...});
$sth->execute(@bound_variables) or die $dbh->errstr;

print "Rows = " . $sth->rows;

Как указал @ThisSuitIsBlackNot, это может не сработать, поэтому, если вы извлекаете все записи, просто посчитайте структуру данных:

print "Rows = " . scalar @{$var1->{reference}};
Другие вопросы по тегам