Получить значения всей выборки данных (selectall_array)

Назначение
 

Метод selectall_array объединяет вызовы методов prepare, execute и fetchall_array в один вызов. Если результатом SQL-запроса является непустая выборка данных, то метод возвращает всю выборку данных в виде массива записей, каждая из которых представлена массивом значений полей SQL-запроса.

Пакет

Package Linter::db

Прототип
@ary = $dbh- >selectall_array($statement);

@ary = $dbh- >selectall_array($statement, \%attr);

@ary = $dbh- >selectall_array($statement, \%attr, @bind_values);
Параметр Описание
$statement Текст SQL-запроса (возможно, с параметрами). SQL-запрос может быть предварительно претранслирован (подготовлен с помощью метода prepare), тогда при выполнении метода selectall_array выполнение метода prepare будет пропущено
\%attr Ассоциированный массив атрибутов с дополнительными указаниями по обработке метода:
  1. MaxRow – задает объем выборки данных (максимальное количество записей выборки);

  2. Slice – контролирует формат возвращаемых записей массива и может задавать столбцы, которые должны быть включены в выходной массив. Например, при задании атрибута { Slice = > {} } каждая запись в выходной выборке данных будет представлена в виде ассоциативного массива, а при задании опции { Slice = > [0] } каждая запись выходной выборки данных будет содержать значения только первого столбца.

  • { Slice = > [] } – каждая запись массива является ссылкой на массив значений полей выборки данных;

  • { Slice = > {} } – каждая запись в выходной выборке данных будет представлена в виде ассоциативного массива (хеш-массива);

  • { Slice = > [n1, …] }, { Slice = > {n1, …} } – каждая запись в выходном массиве будет содержать значения только указанных номеров столбцов

@bind_values Массив, содержащий значения привязываемых параметров (если SQL-запрос содержит параметры)
Возвращаемые значения
Переменная Описание
@ary При наличии данных возвращается массив записей, каждая из которых представлена массивом значений полей SQL-запроса. В случае отсутствия данных или при наличии ошибок возвращается пустой массив
$DBI::errstr Диагностическое сообщение (в случае ошибки выполнения метода)
Пример
my $dbh = $drh- >connect("DEMO", "SYSTEM", "MANAGER8")
        or die "Could not connect to database: " . DBI- >errstr;
my @bind_values = (71, 4);
my $sth = $dbh- >prepare("select * from AUTO where YEAR = ? and
                         CYLNDERS = ?;");
my @ary = $dbh- >selectall_array($sth, undef, @bind_values);
for (my $i = 0; $i <  scalar(@ary); $i++)
{
    for (my $j = 0; $j <  scalar(@{$ary[$i]}); $j++)
    {
        print($ary[$i][$j] . "\n");
    }
    print("\n");
}
$sth- >finish();
$dbh- >disconnect();