Получить первую запись выборки данных в виде массива значений полей записи (selectrow_array)
Назначение
Метод selectrow_array объединяет вызовы методов prepare, execute и fetchrow_array в один вызов. Если результатом SQL-запроса является непустая выборка данных, то метод возвращает первую запись выборки данных в виде массива элементов. Т.к. доступ к последующим записям сформированной выборки данных не поддерживается, то метод эффективно применять к SQL-запросам, возвращающим одну запись, например,
select model, make from auto where color = 'RED' limit 1; select count(*) from person;
Пакет
Package Linter::db
Прототип
@row_ary = $dbh->selectrow_array($statement); @row_ary = $dbh->selectrow_array($statement, \%attr); @row_ary = $dbh->selectrow_array($statement, \%attr, @bind_values);
| Параметр | Описание | |
|---|---|---|
$statement | Текст SQL-запроса (возможно, с параметрами). SQL-запрос может быть предварительно претранслирован (подготовлен с помощью метода prepare), тогда при выполнении метода selectrow_array выполнение метода prepare будет пропущено | |
\%attr | Значение параметра игнорируется | |
@bind_values | Массив, содержащий значения привязываемых параметров (если SQL-запрос содержит параметры) |
Возвращаемые значения
| Переменная | Описание | |
|---|---|---|
@row_ary | Задает имя, которое должно использовать как первая запись выборки данных в виде массива значений. В случае отсутствия данных или при наличии ошибок выполнения методов prepare и/или execute возвращается пустой массив | |
$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 @row_ary = $dbh->selectrow_array($sth, undef, @bind_values);
for (my $i = 0; $i < scalar(@row_ary); $i++)
{
print($row_ary[$i] . "\n");
}
$sth->finish();
$dbh->disconnect();