|
ошибке, возвращаемому Msql: : errmsg .
Пример
use Mysql;
my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');
# В этом запросе есть синтаксическая ошибка...
my $output = $db->query( 'SELECT * from mydata');
if (not $output) {
print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }
Mysql::FIELD_TYPE_*
Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *,
Mysql.pm предоставляет следующие дополнительные функции типов данных:
&Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL
&Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE
&Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG
&Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG
&Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT
&Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP
&Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING
Пример
use Mysql;
my $db = Mysql->connect(undef, 'mydata');
my Soutput = $db->query("SELECT name, data from myothertable");
if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {
print "Name является STRING.\n"; }
Mysql::Statement::affectedrows
$number_of_affected_rows = $statement^handle->affectedrows;
Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом.
Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для
запросов, не являющихся командами SELECT.
Пример
use Mysql;
my $db = Mysql->connect(undef,'mydata');
my $output = $db->query("UPDATE mytable set name='bob' where
name='joe'");
print $output->affectedrows . " строк обновлено.\n";
Mysql::Statement::info
$info = $sth->info;
Mysql: : Statement:: info возвращает дополнительные результаты некоторых
запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE
и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция
Mysql: : Statement:: info возвращает число вставленных записей, число удаленных,
число пропущенных и число элементов, которые невозможно синтаксически
разобрать.
Пример
use Mysql;
$db = Mysql->connect(undef,'mydata');
my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");
my $info = $output->info($output);
print «Результат работы LOAD DATA: $info\n»;
Mysql::Statement::insertid
$new_id = $statement_handle->insertid;
Функция Mysql::Statement::insertid возвращает текущее значение поля
auto_increment (если такое имеется) в таблице. Если в таблице нет поля
auto_increment , она возвращает неопределенное значение undef.
Пример
use Mysql;
my $db = Mysql->connect(undef,'mydata');
my $output = $db->query(
"INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";
my $new_id = $output->insertid;
print "Bob был введен с ID, равным $new_id.\n";
Mysql::Statement::isblob
@blobs = $statement_handle->isblob;
Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на
то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в
скалярном контексте функция возвращает ccылку на массив.
Пример
use Mysql;
$db = Mysql->connect(undef,'mydata');
my $output = $db->query('SELECT name, data from myothertable');
if ($output->isblob->[0]) {
print "Name является полем BLOB.\n"; }
else {
print "Name не является полем BLOB.\n"; }
Mysql::query
В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов,
не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.
Пример
use Mysql;
my $db = Mysql->connect(undef,'mydata');
|
|