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

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

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

Библиотека :: Компьютеры и Программирование :: Начинаем изучать MySQL
<<-[Весь Текст]
Страница: из 157
 <<-
 
Хотя, согласно документации, эта функция возвращает массив описателей команд, 
всегда возвращается не более одного описателя. Поэтому, вероятно, можно 
рассматривать эту функцию как возвращающую скалярный описатель команды. Это 
описатель в том же стиле, что и возвращаемый Msql::query , и может 
обрабатываться теми же функциями. Если индекс не существует, возвращается 
неопределенное значение undef. В возвращаемой таблице данных об индексе одна 
колонка с именем «Index». В первой строке указан тип индекса, который в mSQL2.0 
всегда «avl». Остальные строки суть имена полей, составляющих индекс. Эта 
функция применима только к mSQL версий 2.0 и выше.
Пример
use Msql;
my $db = Msql->connect;
$db->selectdb('mydata');
my $mytable_fields = $db->listfields('mytable');
my @indices = $mytable_fields->listindices;
# Я знаю имена всех индексов.
foreach (@indices) {
my $index_info_handle = $db->listindex('mytable',$_);
my (@index_info) = $index_info_handle->fetchcol(0); 
my $type_of_index = shift(@index_info);
# $type_of_index содержит теперь тип индекса (вероятно, 'avl'), 
# a @index_info содержит теперь список полей в индексе.
Msql::listtables
@tables = $db->listtables;
Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в 
базе данных нет таблиц, функция вернет пустой массив.
Пример
use Msql;
my $db = Msql->connect;
my @tables = $db->listtables; 
my $database = $db->database; 
print "B $database есть следующие таблицы:\n\n" join("\n",@tables);
Msql::query
$query_output = $db->query($sql_statement);
Msql::query является самой важной и наиболее часто используемой функцией в Msql.
pm API. В действительности вы посылаете SQL-запросы серверу базы данных через 
эту функцию. Функция принимает в качестве аргумента скалярную строку, 
содержащую SQL-запрос. Если запрос является выражением SELECT, то она 
возвращает описатель команды, содержащий результаты выполнения запроса. В 
противном случае функция вернет число строк, измененных запросом. С описателем 
команды работают те же самые функции, которые были перечислены для Msql:: listf 
ields (за исключением Msql:: Statement:: listindices ), a также следующие: 
Msql::Statement: :fetchrow , Msql::Statement::fetched , 
Msql::Statement::fetchhash , Msql: Statement::numrows , 
Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо 
причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg 
помещается ошибка. Каждый описатель команды содержит выходные данные отдельного 
запроса, поэтому можно послать системе много запросов и работать с каждым 
описателем команды, когда заблагорассудится.
Пример
use Msql;
my $db = Msql->connect; $db->selectdb('mydata');
my $query1 = "SELECT * FROM mytable";
my $query2 = "SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'"; 
my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";
my $mytable_output = $db->query($query1);
my $myothertable_output = $db->query($query2);
my $myothertable_input = $db->query($query3);
# $mytable_output содержит результаты запроса к 'mytable'
# $myothertable_output содержит результаты запроса к 'myothertable'
print "Обновление 'myothertable' повлияло на имена в $myothertable_input
\n";
$Msql::QUIET
Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl 
отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут 
автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. 
Функция вывода сообщений об ошибках по -w настолько полезна, что не 
рекомендуется устанавливать $Msql: : QUIET .
Пример
use Msql;
# Отключить сообщения об ошибках. Действует, только если сценарий 
# запущен с '-w'.
$Msql::QUIET = 1;
# Выполняем многословную часть...
# Снова включаем сообщения об ошибках. $Msql::QUIET = undef;
Msql::quote
$quoted_string = $db->quote($string); 
$truncated_quoted_string = $db->quote($string,$length);
Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту 
же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле 
 
<<-[Весь Текст]
Страница: из 157
 <<-