Интерфейс с perl (MySQL perl API)
Драйвер MySQL DBD Perl
Этот драйвер представляет собой второй способ обратиться к базе данных MySQL из программы на perl.
В настоящее время эта часть описания интерфейса с perl только немного переработана, относительно версии стандартной pod-документации. Данная часть описания изготовлена с помощью команды pod2html -mke.
Обзор:
use DBI;
$dbh = DBI->connect( $host, $database, $user, 'mysql' [, $password] );
# or
$dbh = DBI->connect('', '', '', 'mysql', {hostname => "localhost",
port => 3333, database => "test",
username => "myname", password => "mypassword",});
ПРИМЕР:
#!/usr/bin/perl
use DBI;
$drh = DBI->install_driver('mysql');
$dbh = $drh->connect('','test','','') or die "Error connecting to database";
$dbh->do("DROP TABLE foo");
$dbh->do("CREATE TABLE foo ( Field_1 VARCHAR(60) )");
$count = 1;
while ($count < 500) {
$sth = $dbh->prepare("INSERT INTO foo VALUES('XXXYYYZZZ')");
$sth->execute;
$sth->finish; # Очень важно вызвать finish, иначе не освободится память.
print "$count\n" unless $count % 10;
$count = $count + 1;
}
Коротко о главном
DBD::mysql является драйвером для работы с базой данных, управляемой СУБД MySQL. Он портирован Michael 'Monty' Widenius of Alligator Descartes' DBD::msql. Вы должны установить DBI-модуль перед использованием DBD::mysql.
$host может быть просто именем сервера (``up.botik.ru'') или именем сервера с указанием порта (``up.botik.ru:3333'').
$database задает имя базы данных с которой надо связаться.
$user задает имя пользователя для доступа к базе данных. (если не указано, используется идентификатор пользователя текущего процесса).
$password является опциональным и нужно только для аккаунтов, которые имеют не пустые пароли.
Системные переменные, которые использует DBD::mysql:
- hostname
- database
- username
- password
- port
Значения в системных переменных отменяют значения, переданные раньше. TCP номер порта, отменяет TCP номер порта, переданный в hostname.
Можно разрешить отладку, установив переменную MYSQL_DEBUG 'd:t:O,filename' (где filename является именем файла для записи протокола). Протокол будет записан в файл только если libmysql откомпилирована с поддержкой отладки (опция DBUG).
Поддерживаются следующие тэги:
- TABLE
- TYPE
- IS_PRI_KEY
- IS_NOT_NULL
- LENGTH
- MAXLENGTH
- IS_KEY
- IS_BLOB
- IS_NUM
Для получения значения поля AUTO_INCREMENT INSERT, надо:
$id = $dbh->func("_InsertID");
Очень большие числа
Ограничения на работу с ОЧЕНЬ БОЛЬШИМИ числами специфичны для языка perl вообще, а не для какого-либо API в частности. Так что все, что об этом сказано выше, справедливо и в данном случае.
Вставка двоичных строк
В случае вставки двоичных данных в базу данных Вы должны обойти некоторые символы. Вы можете использовать следующий метод:
$mystring = $dbh->quote($rawstring);
Об авторе интерфейса
Msqlperl разработан (C)1997 Alligator Descartes. Модифицирован Msqlperl by Michael 'Monty' Widenius. Все изменения доступны на условиях public domain. Pod-документация, на которой основана данная глава, и _InsertID
Что можно почитать
DBI(3) для информации об использовании DBD/DBI.
http://www.hermetica.com/technologia/perl/DBI домашняя страничка DBI,
http://www.tcx.se домашняя страничка mysql,
www.hughes.com.au домашняя страничка msql.
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|