Количество рядов в скаляре - 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}};