MySQL & mSQL



DBI.pmAPI - часть 8


$statement_handle->execute("J%");

# Выполнена вторая команда следующего содержания:

# SELECT name, date FROM myothertable WHERE name like 'J%'

DBI::fetchall_arrayref

$ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.

Пример

use DBI;

my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

my $query = "SELECT name, date FROM myothertable";

my Soutput = $db->prepare($query);

$output->execute;

my $data = $output->fetchall_arrayref;

# Теперь $data является ссылкой на массив массивов. Каждый элемент

# 'главного' массива сам является ссылкой на массив, содержащий строку данных.

print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";

# Элемент 3 'главного' массива является массивом, содержащим четвертую

# строку данных, # Элемент 1 этого массива является датой.

DBI::fetchrow_array

@row_of_data = $statement_handle->fetchrow;

DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.

Пример

use DBI;

my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

my $query = "SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";




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