Документация на MySQL

       

Метаданные


Теперь пересмотрим вышеупомянутые методы в отношении метаданных.

Дескриптор базы данных

Как упомянуто выше, Вы получаете дескриптор базы данных с помощью:

$dbh = Connect Mysql $host, $database;

Дескриптор базы данных хранит сведения о хост-имени сервера, его порте и имени базы данных, с которой установлена связь. Эти три значения можно получить так:

$scalar = $dbh->sock; $scalar = $dbh->host; $scalar = $dbh->database;

База данных не определена, если связь установлена без аргументов или только с одним аргументом.

Операторный дескриптор

Два конструктора возвращают операторный дескриптор:

$sth = ListFields $dbh $table; $sth = Query $dbh $sql_statement;

$sth хранит все метаданные, предоставляемые API:



$scalar = $sth->affected_rows; Сколько записей вставлено или изменено.
$scalar = $sth->info; Статистика о предыдущих запросах ALTER TABLE или LOAD DATA FROM INFILE.
$arrref = $sth->is_blob; Массив битов, специфицирующих является ли данное поле BLOB.
$arrref = $sth->is_not_null; Массив битов, специфицирующих является ли данное поле NULL.
$arrref = $sth->is_pri_key; Массив битов, специфицирующих является ли данное поле первичным ключом.
$arrref = $sth->is_num; Массив битов, специфицирующих является ли данное поле числом.
$scalar = $sth->insert_id; Значение, присвоенное столбцу с помощью AUTO_INCREMENT последним INSERT.
$arrref = $sth->length; Массив длин всех полей в байтах.
$arrref = $sth->name; Имена всех столбцов.
$scalar = $sth->numrows; Количество возвращаемых записей.
$scalar = $sth->numfields; Количество возвращаемых полей.
$arrref = $sth->table; Имена каждого столбца в таблице.
$arrref = $sth->type; Тип каждого столбца, определен в mysql.h. Доступен с помощью &Mysql::CHAR_TYPE, &Mysql::INT_TYPE, &Mysql::REAL_TYPE

Опция -w

Опция -w может быть очень полезной в случае проблем с отладкой. Если Вы вызываете программу на perl с опцией -w, то предупреждения, обычно хранимые в $Mysql::db_errstr будут выводиться в STDERR (стандартный поток ошибок). Таким образом, Вы получите сообщения об ошибках сервера MySQL без обработки их в Вашей программе.

Если надо использовать опцию -w, но не надо, чтобы сообщения об ошибках увидел демон MySQL, можно установить переменную $Mysql::QUIET в любое ненулевое значение.



Содержание раздела