Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
осуществляет подстановку действительных значений вместо меток-заместителей. 
Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.

Пример
use DBI;
my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');
my $statement_handle = $db->prepare('SELECT * FROM mytable');
# Теперь эта команда готова к выполнению.
My $statement_handle = $db->prepare('SELECT name, date FROM myothertable WHERE 
name like ?');
# Эта команда будет готовя к выполнению после подстановки # с использованием 
функции DBI::bind_param.
DBI::quote
$quoted_string = $db->quote($string);
DBI::quote принимает строку для использования в качестве запроса SQL и 
возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в 
том числе расставляя корректные кавычки по концам строки.
Пример
use DBI;
my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef); 
my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');
my $string = "Sheldon's Cycle";
my $qs1 = $db1->quote($string);
# $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки) 
my $qs2 = $db2->quote($string);
# $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)
# Теперь обе строки годятся для использования в командах для своих
# соответствующих серверов баз данных.
DBI::rows
$number_of_rows = $statement_handle->rows;
Del: : rows возвращает число строк данных, содержащихся в описателе команды. 
Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, 
включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу 
все результаты, эта функция надежно работает только для команд, не являющихся 
SELECT. Это следует учитывать при написании переносимых программ. Функция 
возвращает —1, если по какой-либо причине число строк неизвестно. Переменная 
$DBI: : rows выполняет ту же задачу.
Пример
use DBI;
my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
my $query = "SELECT name, date FROM myothertable WHERE name='Bob'";
my $myothertable_output = $db->prepare($query);
$myothertable_output->execute;
my $rows = $myotnertable_output->rows;
print "В таблице 'myothertable' есть $rows строк 'Воb'\n";
DBI::state
$sql_error = $handle->state;
DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI.
 В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта 
функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state 
выполняет ту же задачу.
Пример
Use OBI;
my $db = DBI->connect('DBI:mysql:mydata',
'webuser','super_secret_squirгеl');
my $sql_error = $db->state;
warn("BoT последняя по времени ошибка DBI SQL: $sql_error");
DBI::trace
DBI->trace($trace_level) 
DBI->trace($trace_level, $trace_file) 
$handle->trace($trace_level);
$handle->trace($trace_level, $trace_file);
DBI:: trace используется в основном для отладки. Если уровень трассировки 
установлен равным 2, выводится полная отладочная информация. Установка уровня 0 
отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, 
a $handle->trace - только для данного описателя — базы данных или команды. При 
наличии в DBI- >t race или $handle->trace второго аргумента отладочная 
информация выводится в указанный файл. Также трассировку можно включить, 
установив значение переменной окружения DBI_TRACE. Если переменная окружения 
установлена равной числу (в настоящее время 0 или 2), включается трассировка 
всех описателей на этом уровне. При другом значении переменной уровень 
трассировки устанавливается равным 2, а само значение используется в качестве 
имени файла для вывода отладочной информации.
Пример
use DBI;
my $db1 = DBI->connect('DBI:mysql:mydata',
'webuser','super_secret_squirrel');
my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);
DBI >trace(2);
# Включена трассировка для всех описателей на уровне 2.
 
<<-[Весь Текст]
Страница: из 157
 <<-