Получить ссылку на массив значений всей выборки данных (selectall_arrayref)
Назначение
Метод selectall_arrayref объединяет вызовы методов prepare, execute и fetchall_arrayref в один вызов. Если результатом SQL-запроса является непустая выборка данных, то метод возвращает всю выборку данных в виде ссылки на массив записей, каждая из которых представлена ссылкой на массив значений полей SQL-запроса.
Пакет
Package Linter::db
Прототип
$ary_ref = $dbh->selectall_arrayref($statement); $ary_ref = $dbh->selectall_arrayref($statement, \%attr); $ary_ref = $dbh->selectall_arrayref($statement, \%attr, @bind_values);
| Параметр | Описание | |
|---|---|---|
$statement | Текст SQL-запроса (возможно, с параметрами). SQL-запрос может быть предварительно претранслирован (подготовлен с помощью метода prepare), тогда при выполнении метода selectall_arrayref выполнение метода prepare будет пропущено | |
\%attr | См. метод selectall_array | |
@bind_values | Массив, содержащий значения привязываемых параметров (если SQL-запрос содержит параметры) |
Возвращаемые значения
| Переменная | Описание | |
|---|---|---|
$ary_ref | При наличии данных возвращается ссылка на массив записей, каждая из которых представлена ссылкой на массив значений полей SQL-запроса. В случае отсутствия данных или при наличии ошибок выполнения методов prepare и/или execute возвращается undef | |
$DBI::errstr | Диагностическое сообщение (в случае ошибки выполнения метода) |
Пример
my $dbh = $drh->connect("DEMO", "SYSTEM", "MANAGER8")
or die "Could not connect to database: " . DBI->errstr;
my $ary_ref = $dbh->selectall_arrayref("select * from AUTO;",
{ Slice => [0], MaxRows => 10 });
for (my $i = 0; $i < scalar(@$ary_ref); $i++)
{
for (my $j = 0; $j < scalar(@{$ary_ref->[$i]}); $j++)
{
print($ary_ref->[$i][$j] . "\n");
}
print("\n");
}
$dbh->disconnect();