|
описателе команды. При вызове в скалярном контексте функция возвращает ссылку
на массив. Сам по себе этот массив не очень интересен для большинства
пользователей (в текущей реализации это массив целых чисел), однако эти
значения можно сравнивать со встроенными значениями, определенными в Msql.pm,
такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования
этих данных - создание массива с читаемыми названиями, соответствующими
предустановленным типам. Этот метод был продемонстрирован в главе 10 «Perl».
Другой способ показан ниже.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $output = $db->query("select name, date from myothertable");
my ($name_type, $date_type) = $output->type;
for ($name_type) {
$_ eq &Msql: :CHAR_TYPE and do {
print ''name является CHAR';
last;
} $_ eq &Msql::INT_TYPE and do {
print 'name является INT'; last; } # и т.д....
}
# повторить для $date_type
Msql::sock
$sock = $db->sock;
Msql::sock возвращает скаляр, содержащий номер сокета, использованного для
подключения к серверу mSQL. Обычно это полезно только при действительно
изощренном программировании.
Пример
use Msql;
my $db = Msql->connect;
my $sock = $db->sock;
print "Я подключен к сокету $sock.\n";
Msql::*_TYPE
Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:
&Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
&Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
&Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE
Пример
use Msql;
%types = (
'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' =>
&Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE,
'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' =>
&Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE,
'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,
);
# $types{'CHAR'} является теперь легкодоступным псевдонимом для
# &Msql::CHAR_TYPE. Наличие значений в %types дает доступ ко всем
# удобным функциям работы с хешами, такими как keys() и values().
$Msql::VERSION
В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.
Пример
use Msql;
print "Вы используете Msql.pm версии $Msql::VERSION.\n";
Mysql.pm API
Mysql.pm API идентичен Msql API (с заменой всюду «Msql» на «Mysql»), за
исключением следующих отличий:
Mysql::connect
$db = Mysql->connect($host, Sdatabase, $user, $password);
Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql::
connect есть четвертый метод, требующий передачи пароля в качестве
дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера
MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с
сонетом Unix на локальном узле. Второй аргумент является именем первоначально
выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql:
:selectdb . Можно передать undef в качестве второго аргумента, чтобы не
выбирать исходной базы данных. Третий аргумент является именем пользователя для
соединения с базой данных. Для успешного соединения имя пользователя должно
присутствовать в таблицах доступа MySQL. Последний аргумент является паролем
пользователя.
Пример
use Mysql;
$db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');
# Теперь описатель базы данных соединен с локальным сервером MySQL и
# использует базу данных 'mydata1.
# Использовано имя пользователя 'webuser' для
# соединения с паролем 'super_secret_squirrel'.
Mysql::errno
$error_number = $db->errno;
Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об
|
|