MySQL & mSQL



DBI.pmAPI


DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.

use

use DBI;

Следует объявлять во всех программах Perl, использующих модуль DBI.

DBI::available_drivers

@available_drivers = DBI->available_drivers;

@available_drivers = DBI->available_drivers($quiet);

DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.

Пример

use DBI;

my @drivers = DBI->available_drivers;

print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\n Ho нас интересуют только mSQL и mysql. :)\n";

DBI::bind_col

$result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.

Пример

use OBI;

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

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

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

my ($name, $date);

$myothertable_output->bind_col(1,\$name,undef);

$myothertable_output»bind_col(2, \$date, undef);

# Теперь $name и Sdate привязаны к соответствующим полям выходных данных.




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