Будет полезно рассмотреть еще несколько функций, предназначенных для получения различной информации о результате запроса.
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 |
Поле может содержать бинарный блок данных, который никак не интерпретируется |