|
$handle->{l_ongReadLen}
$handle->{l_ongTruncOk}
$handle->{CompatMode}
Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им
значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет
атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к
нему «убьет» программу.
Пример
use DBI;
my $db = DBI->connect('mysql:mydata','me','mypassword');
$db->{RAISE_ERROR} = 1;
# Теперь любая ошибка DBI/DBD убьет программу.
my $statement_handle = $db->prepare('SELECT * FROM mytable');
$statement_handle->execute;
my @fields = @{$statement_handle->{NAME}};
# @fields содержит теперь список с именами всех полей в 'mytable'.
Msql.pm API
use Msql
use Msql;
Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.
Msql::connect
$db = Msql->connect;
$db = Msql->connect($host);
$db = Msql->connect($host, Sdatabase);
Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой
функции три версии. При отсутствии аргументов соединение устанавливается с
сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее
эффективное соединение. Если задан один скалярный аргумент, он рассматривается
как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером
без указания базы данных. Если присутствуют два скалярных аргумента, то первый
рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы
данных. Программа устанавливает соединение с указанным сервером и выбирает
указанную базу данных. Возвращаемое значение является ссылкой на объект,
называемый описателем базы данных (database handle). Вся связь с самим сервером
базы данных происходит через этот объект. В случае невозможности установить
соединение, все версии функции возвращают undef, и в $Msql: :db_errstr
помещается сообщение об ошибке.
Пример
use Msql;
# Соединение с сокетом Unix локального узла ' my $db = Msql->connect;
# Или...
# Соединение с узлом 'www.myserver.com' без указания, базы данных
mу $db = Msql->connect('www.myserver.com');
# Или...
# Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
mу $db = Msql->connect('www.myserver.com','mydata');
Msql::createdb
$result = $db->createdb($database);
Msql: : createdb создает базу данных, имя которой принимает в качестве
аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от
имени пользователя, запустившего CGT-программу. Поэтому для успешного
использования в программе CGI последняя должна быть запущена пользователем,
имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в
случае успеха.
Пример
use Msql;
my $db = Msql->connect;
my $my_new_database = 'mynewdata';
my $result = $db->createdb($my_new_database);
die "База данных не создана!"
if $result == -1;
print "$my_new_database создана.\n";
Msql::database
$database = $db->database;
Msql: database возвращает имя текущей базы данных как скаляр. Функция
возвращает undef, если нет выбранной базы данных.
Пример
use Msql;
my $db = Msql->connect('www.myserver.com','mydata');
my $database = $db->database;
print "Здесь должно быть выведено 'mydata': $database\n";
Msql::dropdb
$result = $db->dropdb($database);
Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно
удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается
от имени пользователя, запустившего CGI-программу. Поэтому для успешного
использования в программе CGI она должна быть запущена пользователем, имеющим
право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае
успеха. Она не просит подтверждения, и ее результат становится постоянным,
поэтому ее следует использовать с крайней осторожностью.
|
|