MySQL & mSQL




Msql.pm API - часть 8


@column_of_data = $statement_handle->fetchcol($column_number);

Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 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 другие можно получить через описатель команды, возвращаемый




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