Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая 
колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю 
таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой 
функции, переустановите данные с помощью Msql::Statement: :dataseek . Если 
задан недопустимый номер колонки, возвращается неопределенное значение undef.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $query = "SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
my $myothertable_output = $db->query($query);
my @names = $myothertable_output->fetchcor(0);
# @names содержит теперь все имена.
my @dates = $myothertable_output->fetchcol(1);
# ©dates содержит теперь все даты.
for (0..$#names) {
print "Row $_: $names[$_], $dates[$_]\n"; } 
Msql::Statement::fetchhash
%hash ='$statement_handle->fetchhash;
Msql::Statement: :fetchhash возвращает текущую строку описателя команды как 
ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - 
значения данных текущей строки. Каждое последующее обращение к функции 
возвращает очередную строку данных. Когда данных больше нет, функция возвращает 
неопределенное значение undef.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $query = "SELECT * FROM mytable";
my $mytable_output = $db->query($query);
my %first_data_row = $mytable_output->fetchhash;
my @fields = keys %first_data_row;
# @fields содержит теперь имена всех полей. В результате, фактически нет
# нужды использовать Msql::listfields, поскольку ее данные и многие
If другие можно получить через описатель команды, возвращаемый
# Msql::query.
my (%data_row);
print ]oin("", ©fields), "\n';
print "-"x70;
print join("", values(%first_data_row);
print join("", values(%data_row)) while %data_row = $mytable_output-
>fetchhash;
# Таким образом распечатывается вся таблица, хотя и в невыравненном
# формате.
Msql::Statement::fetchrow
@row_of_data = $statement_handle->fetch row;
Msql:: Statement: : fetch row возвращает очередную строку данных из описателя 
команды, созданного Msql:.-query. Каждое последующее обращение к Msql: 
Statement: :fetchrow возвращает очередную строку данных. Когда данных больше 
нет, функция возвращает неопределенное значение undef. Элементы в 
результирующем массиве упорядочены в соответствии с исходным запросом. Если 
запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с 
последовательностью определения полей в таблице.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $query1 = "SELECT * FROM mytable";
my $query2 = "SELECT name, date FROM myothertable WHERE name LIKE
'Bob%'";
my $mytable_output = $db->query($query1);
my $myothertable_output = $db->query($query2);
my $i = 0;
# Чтение строк данных будет продолжаться,
# пока их больше не останется.
while (my(@mytable_rows)=$mytable_output->fetcnrow) { 
print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n"; 
# Если неизвестна структура таблицы 'mytable',
# нельзя узнать число элементов в @mytable_rows или их порядок.
}
my (Sname, $date);
# Это первая строка данных в $myotrertable_output.
($name, $datc) = $myothertaPle_output->fetchrow;
# Это следующая строка...
($name, $date) = $myothertable_output->fetchrow;
# И еще одна...
my @name_and_date = $myothertable_output->fetchrbw;
# и т.д....
Msql::Statement::isnotnull
@not_null = $statement_handle->isnotnull;
 
<<-[Весь Текст]
Страница: из 157
 <<-