Доступные версии документации

Получить массив ссылок на хеш-массив значений столбца всех записей выборки данных выполненного запроса (fetchall_hashref)

Назначение
 

Метод fetchall_hashref предоставляет ссылку на хеш-массив всех значений указанного столбца выборки данных из предварительно выполненного SQL-запроса. Он возвращает ссылку на хеш-массив, содержащий хеш-ключ для каждого уникального значения указанного столбца выборки данных. Для каждого хеш-ключа соответствующее значение является ссылкой на хеш-массив, содержащий все выбранные столбцы и их значения.

Если выборка данных пуста, метод fetchall_hashref вернет ссылку на пустой хеш-массив. Если в процессе выполнения метода по какой-либо причине (например, разрыв соединения) драйвер больше не сможет предоставлять записи выборки данных, то возвращаемый хеш-массив будет содержать ссылки только на ранее выбранные записи. Необходимо контролировать подобные ситуации, например, путем вызова $sth->err для уточнения возможного усечения выборки данных из-за возникшей ошибки.

Параметр $key_field содержит имя поля, которое будет использоваться как хеш-ключ для полученных хеш-значений. Параметр также может содержать значение в виде порядкового номера столбца выборки данных (отсчет начинается с 1). Если параметр $key_field задан неправильно (в выборке данных нет столбцов с таким номером или именем), то возвращается ошибка. Для запросов, возвращающих более одного «ключевого» столбца, можно указать несколько имен столбцов, передав $key_field как ссылку на массив, содержащий одно или несколько ключевых имен столбцов (или индексов), например:

$sth = $dbh->prepare("select YEAR, HORSEPWR, MAKE from AUTO;");
  $sth->execute();
  $hash_ref = $sth->fetchall_hashref([qw(YEAR HORSEPWR)]);
  print "Model ’71 with 150 horsepower is $hash_ref->{71}->{150}->{MAKE}\n";
Пакет

Package Linter::st

Прототип
$hash_ref = $sth->fetchall_hashref($key_field);
Параметр Описание
$key_field  Имя или порядковый номер столбца (столбцов) выборки данных, используемого для формирования его хеш-массива значений
Возвращаемые значения
Переменная Описание
$hash_ref  Ссылка на массив ссылок хеш-массивов значений заданных столбцов выборки данных или ссылка на пустой хеш-массив в случае отсутствия данных
$DBI::errstr  Диагностическое сообщение (в случае ошибки).
Пример
my $dbh = $drh->connect("DEMO", "SYSTEM", "MANAGER")
or die "Could not connect to database: " . DBI->errstr;
my $sth = $dbh->prepare("select SERIALNO, MODEL, MAKE, COLOR from AUTO;");
$sth->execute();
my $ary_ref = $sth->fetchall_hashref("SERIALNO");
my @keys = keys(%$ary_ref);
for (my $i = 0; $i < scalar(keys(%$ary_ref)); $i++)
{
    print($ary_ref->{$keys[$i]}->{MODEL} . "\n");
    print($ary_ref->{$keys[$i]}->{MAKE} . "\n");
    print($ary_ref->{$keys[$i]}->{COLOR} . "\n");
    print("\n");
}
$sth->finish();
$dbh->disconnect();
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter