|
умолчанию равный 35. Третий аргумент задает строку, используемую для
разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку,
используемую для разделения значений полей в строке, по умолчанию используется
запятая. Последний аргумент задает ссылку на глобальный описатель файла, в
который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть
описатель команды, возвращается значение undef.
Пример
use DBI;
my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
my Squery = "SELECT name, date FROM myothertable";
my $myothertable_output = $db->prepare($query);
$myothertable_output->execute;
print DBI::dump_results($myothertable_output);
# Вывести результаты в аккуратной таблице.
open(MYOTHERTABLE, ">>myothertable");
print DBI: :dump_results($iriyothertable_output,
undef,undef,undef,\*MYOTHERTABLE);
# Снова вывести результаты в файл 'myothertable,'.
$DBI::err
$error_code = $handle->err;
$DBI::err возвращает код последней по времени ошибки DBI. Код ошибки
соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr.
Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с
описателями как баз данных, так и команд.
Пример
use DBI;
my $db = DBI->connect('DBI:mysql:mydata',
'webuser','super_secret_squirrel');
# Этот запрос имеет синтаксическую ошибку...
my Soutput = $db->prepare('SLECT * from mydata');
$output->execute;
if (not $output) {
print "Error $DBI:err: $DBI:errstr\n"; }
$DBI::errstr
$error = $handle->errstr;
Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение
сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во
время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI:
:errstr выполняет ту же задачу. Эта функция применима с описателями как баз
данных, так и команд.
Пример
Use DBI;
my $db = DBI->connect('DBI:mysql:mydata',
'wcbuscr','super_secret_squirrel');
my $error = $db->errstr;
warn("Boj последняя ошибка DBI: $error");
DBI::execute
$rows_affected = $statement_handle->execute;
$rows_affected = $statement_handle->execute(@bind_values);
DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для
запроса, не являющегося SELECT, функция возвращает число измененных строк.
Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при
успехе возвращается истинное значение. Если заданы аргументы, они используются
для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).
Пример
use DBI;
my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
my $statement_handle = $db->prepare("SELECT * FROM mytable");
my $statement_handle2 = $db->prepare("SELECT name, date FROM myothertable WHERE
name like ?");
$statement_handle->execute;
# Выполнена первая команда.К значениям можно
# обращаться через описатель.
$statement_handle->execute("J%");
# Выполнена вторая команда следующего содержания:
# SELECT name, date FROM myothertable WHERE name like 'J%'
DBI::fetchall_arrayref
$ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;
DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в
виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в
котором содержатся данные этой строки. Если в описателе команды нет данных,
функция возвращает неопределенное значение undef. Если с этим описателем
команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref
возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row
*.
Пример
use DBI;
my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);
my $query = "SELECT name, date FROM myothertable";
my Soutput = $db->prepare($query);
|
|