Perl для системного администрирования


         

ipaddr FROM hosts WHERE naire


©machines = qw(bendir shimmer sander);

$sth = $dbh->prepare(q{SELECT nair.e, ipaddr FROM hosts WHERE naire = 9}):

foreach Sname (&machines){ $sth->execute($narr.e):

Каждый раз, проходя через цикл гегемон, запрос SELECT выполняется с разными условиями WHERE. Можно применять и несколько заполнителей:

$str->prepare;

q{SELECT ria.T.o :nad''!" f ROM t ou's WHERE (name = ? AND bldg = ? AND dept = ?)}):

$sth->execute($nan-!0t $bldg, Sdept);

Теперь, когда известно, как получить количество записей, обрабатываемых запросом, отличным от SELECT, посмотрим, как получить результаты запросов SELECT.

Шаг 4: Получите результаты запроса SELECT

Механизм, рассмотренный здесь, похож на историю о курсорах из приложения D. Когда серверу при помощи execi::p() посылается запрос SELECT, применяется способ, позволяющий возвращать результаты построчно.

Для получения данных в DBI используется один из методов, перечисленных в табл. 7.1.

Таблица 7.1. DBI-методы получения данных























































Имя


Возвращает


Возвращает, если больше нет записей



fetchrow_arrayref ( )


Ссылка на анонимный массив со значениями, являющимися полями следующей записи


undef


fetchrow_array()


Массив со значениями, являющимися полями следующей записи


Пустой список


fetchrow_hashref ( )


Ссылка на анонимный хэш, ключами которого являются имена полей, а значениями - значения полей следующей записи



undef


fetchall_arrayref ()


Ссылка на массив массивов


Ссылка на пустой массив


Посмотрим, как работают эти методы в нашем случае. Для каждого из примеров будем считать, что перед вызовом метода выполнено следующее:

$sth = $dbh->prepare(q{SELECT name,ipaddr,dept from nosts}) or

die "Невозможно подготовить запрос: ".$dbh->errstr." \n":

$sth->execute or die "Невозможно выполнить запрос: ". $dbh-->orr

Вот метод fetchrow_arrayref () в действии:

while (Saref = $sth->fetchrow_arrayref){ print "name: " .

$aref~>[0] . "\n"; print "ipaddr: " . $aref->[1] . "\n";


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий