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
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий