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