САМОУЧИТЕЛЬ PHP 4


Получение информации о результате


Будет полезно рассмотреть еще несколько функций, предназначенных для получения различной информации о результате запроса.

string mysql_field_name(int $result, int $field_index)

Функция mysql_field_name() возвращает имя поля, которое расположено в результате по смещению $field_index. В общем-то, применяется довольно редко, что связано с существованием функции mysql_fetch_array().

Итак, с помощью функции mysql_field_name()

мы можем "переводить" числовые X-координаты в двумерном массиве результата в их ассоциативные эквиваленты.

string mysql_field_type(int $result, int $field_offset)

Эта функция похожа на mysql_field_name(), только возвращает не имя, а тип соответствующей колонки в результате. Им может быть, например, int, double и т.д.

int mysql_field_len(int $result, int $field_offset)

Функция возвращает длину поля в результате $result. Поле, как обычно, задается указанием его смещения. Под длиной здесь подразумевается не размер данных поля в байтах, а тот размер, который был указан при его создании. Например, если поле имеет тип varchar и было создано (вместе с таблицей) с типом varchar(100), то для него будет возвращено 100.

Описание подробностей выходит за рамки этой книги. За детальными разъяснениями вынужден отослать вас к какой-нибудь книге о языке запросов SQL.

string mysql_field_flags(int $result, int $field_offset)



Эта функция возвращает флаги, которые были использованы при создании указанного поля в таблице. Возвращаемая строка представляет собой набор слов, разделенных пробелами, так что вы можете преобразовать ее в массив при помощи функции explode():

$Flags=explode(" ",mysql_field_flags($r,$field_offset));

Флаги, которые поддерживаются MySQL в настоящий момент, перечислены в табл. 26.7.

Таблица 26.7. Флаги типов полей

Флаг

Описание

not_null

Поле обязательно должно быть проинициализировано при вста­вке очередной строки в таблицу

Primary_key

Поле является первичным ключом — т. е. идентификатором строки, который будет использован для ссылок на нее

Unique_key

Поле должно быть уникальным

Multiple_key

По этому полю построен индекс

Blob

Поле может содержать бинарный блок данных, который никак не интерпретируется

<
Таблица 26.7 (окончание)

Флаг

Описание

Unsigned

Поле содержит беззнаковые числа

zerofill

Использовать символы с нулевым кодом вместо пробелов

binary

Поле содержит бинарные данные

enum

Поле содержит элемент перечисления, т. е. только один элемент из нескольких возможных

auto_increment

Это поле автоматически нумеруется. Проставляется MySQLпри добавлении новой записи так, чтобы в таблице никогда не образовывалось нескольких строк с одинаковым значением этого поля

timestamp

В поле динамически проставляется текущее время при добавлении или изменении записи

string mysql_field_table(int $result, int $field_offset)

Возвращает имя таблицы, из которой было извлечено поле со смещением $field_offset в результате $result. Как уже говорилось, результат запроса может быть получен из нескольких таблиц, так что вот вам средство для извлечения имени таблицы по номеру поля.


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