Poniższy kod wydaje się po prostu zbyt duży, aby uzyskać pojedynczą wartość zliczania. Czy istnieje lepszy, zalecany sposób pobierania pojedynczej wartości COUNT za pomocą zwykłego DBI?Jak mogę pobrać pojedynczą wartość licznika z bazy danych za pomocą DBI?
sub get_count {
my $sth = $dbh->prepare("SELECT COUNT(*) FROM table WHERE...");
$sth->execute(@params);
my $($count) = $sth->fetchrow_array;
$sth->finish;
return $count;
}
To jest krótszy, ale nadal mam dwa oświadczenia.
sub get_count_2 {
my $ar = $dbh->selectall_arrayref("SELECT ...", undef, @params)
return $ar->[0][0];
}
To jest trochę subiektywne. Niektórzy powiedzieliby, że twój dłuższy przykład jest bardziej czytelny. Czy gramy w Perla Golfa? – pavium
Czy ma znaczenie, ile masz wyciągów? –
Mam wiele takich wywołań w moim kodu, więc mam sub, który pobiera instrukcji SQL i @params i zwraca liczbę. Gdybym miał wbudowane oświadczenie dla tego w DBI, to nie potrzebuję dodatkowego sub. Myślę, że jest to powszechny przypadek użycia i zastanawiałem się, czy jest takie stwierdzenie, a ja go nie zauważyłem lub nie ma takiego stwierdzenia w DBI. – szabgab