- mysqli_fetch_field
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- mysql_fetch_field
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- mysqli_fetch_field
- Список параметров
- Возвращаемые значения
- Примеры
- Смотрите также
- mysqli_fetch_fields
- Parameters
- Return Values
- Examples
- See Also
mysqli_fetch_field
Возвращает информацию об одном столбце результирующего набора в виде объекта. Чтобы получить определения всех столбцов, просто запустите эту функцию многократно.
Список параметров
Возвращаемые значения
Возвращает объект, содержащий определение поля или false , если столбцы в результирующей таблице закончились.
Свойство | Описание |
---|---|
name | Имя столбца |
orgname | Исходное имя столбца, если у него есть псевдоним |
table | Имя таблицы, которой принадлежит столбец (если не вычислено) |
orgtable | Исходное имя таблицы, если есть псевдоним |
def | Зарезервировано для значения по умолчанию, на данный момент всегда «» |
db | Имя базы данных |
catalog | Имя каталога, всегда «def» |
max_length | Максимальная ширина поля результирующего набора. |
length | Ширина поля, как она задана при определении таблицы. |
charsetnr | Количество наборов символов для поля. |
flags | Целое число, представляющее битовые флаги для поля. |
type | Тип данных поля |
decimals | Число знаков после запятой (для целочисленных полей) |
Примеры
Пример #1 Объектно-ориентированный стиль
$mysqli = new mysqli ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* проверка подключения */
if ( mysqli_connect_errno ()) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>
$query = «SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5» ;
if ( $result = $mysqli -> query ( $query ))
/* Получим информацию обо всех столбцах */
while ( $finfo = $result -> fetch_field ())
printf ( «Имя: %s\n» , $finfo -> name );
printf ( «Таблица: %s\n» , $finfo -> table );
printf ( «Макс. длина: %d\n» , $finfo -> max_length );
printf ( «Флаги: %d\n» , $finfo -> flags );
printf ( «Тип: %d\n\n» , $finfo -> type );
>
$result -> close ();
>
/* закрываем подключение */
$mysqli -> close ();
?>
Пример #2 Процедурный стиль
$link = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* проверка подключения */
if ( mysqli_connect_errno ()) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>
$query = «SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5» ;
if ( $result = mysqli_query ( $link , $query ))
/* Получим информацию обо всех столбцах */
while ( $finfo = mysqli_fetch_field ( $result ))
printf ( «Имя: %s\n» , $finfo -> name );
printf ( «Таблица: %s\n» , $finfo -> table );
printf ( «Макс. длина: %d\n» , $finfo -> max_length );
printf ( «Флаги: %d\n» , $finfo -> flags );
printf ( «Тип: %d\n\n» , $finfo -> type ); >
mysqli_free_result ( $result );
>
/* закрываем подключение */
mysqli_close ( $link );
?>
Результат выполнения данных примеров:
Имя: Name Таблица: Country Макс. длина: 11 Флаги: 1 Тип: 254 Имя: SurfaceArea Таблица: Country Макс. длина: 10 Флаги: 32769 Тип: 4
Смотрите также
- mysqli_num_fields() — Получает количество полей в наборе результатов
- mysqli_fetch_field_direct() — Получение метаданных конкретного поля
- mysqli_fetch_fields() — Возвращает массив объектов, представляющих поля результирующего набора
- mysqli_field_seek() — Установить указатель поля на определённое смещение
mysql_fetch_field
Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:
Описание
Возвращает объект, содержащий информацию о колонке. Эту функцию можно использовать для получения информации о полях в переданном результате запроса.
Список параметров
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .
Числовое смещение поля. Если смещение не указано, функция возвращает информацию о первой колонке, которая ещё не была обработана этой функцией. Нумерация field_offset начинается с 0.
Возвращаемые значения
Возвращает object , содержащий информацию о колонке. Объект содержит следующие свойства:
- name — название колонки
- table — название таблицы, которой принадлежит колонка, или псевдоним таблицы, если он был определен
- max_length — максимальная длина колонки
- not_null — 1, если колонка не может быть NULL
- primary_key — 1, если колонка является первичным индексом
- unique_key — 1, если колонка является уникальным индексом
- multiple_key — 1, если колонка является неуникальным индексом
- numeric — 1, если колонка численная
- blob — 1, если колонка является BLOB
- type — тип колонки
- unsigned — 1, если колонка не содержит знака (unsigned)
- zerofill — 1, если колонка заполняется нулями (zero-filled)
Примеры
Пример #1 Пример использования mysql_fetch_field()
$conn = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $conn ) die( ‘Ошибка при соединении: ‘ . mysql_error ());
>
mysql_select_db ( ‘database’ );
$result = mysql_query ( ‘select * from table’ );
if (! $result ) die( ‘Ошибка в запросе: ‘ . mysql_error ());
>
/* получаем данные о колонке */
$i = 0 ;
while ( $i < mysql_num_fields ( $result )) echo "Информация о колонке $i :
\n» ;
$meta = mysql_fetch_field ( $result , $i );
if (! $meta ) echo «Информация недоступна
\n» ;
>
echo «
blob: $meta -> blob
max_length: $meta -> max_length
multiple_key: $meta -> multiple_key
name: $meta -> name
not_null: $meta -> not_null
numeric: $meta -> numeric
primary_key: $meta -> primary_key
table: $meta -> table
type: $meta -> type
unique_key: $meta -> unique_key
unsigned: $meta -> unsigned
zerofill: $meta -> zerofill
» ;
$i ++;
>
mysql_free_result ( $result );
?>?php
Примечания
Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.
Замечание:
Если поля или таблицы имеют дополнительные имена в запросе SQL, то будет возвращены эти дополнительные имена. Исходное имя может быть получено, например, с помощью mysqli_result::fetch_field() .
Смотрите также
mysqli_fetch_field
Возвращает информацию об одном столбце результирующего набора в виде объекта. Чтобы получить определения всех столбцов, просто запустите эту функцию многократно.
Список параметров
Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query() , mysqli_store_result() или mysqli_use_result() .
Возвращаемые значения
Возвращает объект содержащий определение поля или FALSE , если столбцы в результирующей таблице закончились.
Свойство | Описание |
---|---|
name | Имя столбца |
orgname | Исходное имя столбца, если у него есть псевдоним |
table | Имя таблицы, которой принадлежит столбец (если не вычислено) |
orgtable | Исходное имя таблицы, если есть псевдоним |
def | Зарезервировано для значения по умолчанию, на данный момент всегда «» |
db | База данных (с PHP 5.3.6) |
catalog | Имя каталога, всегда «def» (с PHP 5.3.6) |
max_length | Максимальная ширина поля результирующего набора. |
length | Ширина поля, как она задана при определении таблицы. |
charsetnr | Количество наборов символов для поля. |
flags | Целое число, представляющее битовые флаги для поля. |
type | Тип данных поля |
decimals | Число знаков после запятой (для целочисленных полей) |
Примеры
Пример #1 Объектно-ориентированный стиль
$mysqli = new mysqli ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* проверка подключения */
if ( mysqli_connect_errno ()) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>
$query = «SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5» ;
if ( $result = $mysqli -> query ( $query ))
/* Получим информацию обо всех столбцах */
while ( $finfo = $result -> fetch_field ())
printf ( «Имя: %s\n» , $finfo -> name );
printf ( «Таблица: %s\n» , $finfo -> table );
printf ( «макс. длина: %d\n» , $finfo -> max_length );
printf ( «Флаги: %d\n» , $finfo -> flags );
printf ( «Тип: %d\n\n» , $finfo -> type );
>
$result -> close ();
>
/* закрываем подключение */
$mysqli -> close ();
?>
Пример #2 Процедурный стиль
$link = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );
?php
/* проверка подключения */
if ( mysqli_connect_errno ()) printf ( «Не удалось подключиться: %s\n» , mysqli_connect_error ());
exit();
>
$query = «SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5» ;
if ( $result = mysqli_query ( $link , $query ))
/* Получим информацию обо всех столбцах */
while ( $finfo = mysqli_fetch_field ( $result ))
printf ( «Имя: %s\n» , $finfo -> name );
printf ( «Таблица: %s\n» , $finfo -> table );
printf ( «макс. длина: %d\n» , $finfo -> max_length );
printf ( «Флаги: %d\n» , $finfo -> flags );
printf ( «Тип: %d\n\n» , $finfo -> type ); >
mysqli_free_result ( $result );
>
/* закрываем подключение */
mysqli_close ( $link );
?>
Результат выполнения данных примеров:
Имя: Name Таблица: Country макс. длина: 11 Флаги: 1 Тип: 254 Имя: SurfaceArea Таблица: Country макс. длина: 10 Флаги: 32769 Тип: 4
Смотрите также
- mysqli_num_fields() — Получение количества полей в результирующем наборе
- mysqli_fetch_field_direct() — Получение метаданных конкретного поля
- mysqli_fetch_fields() — Возвращает массив объектов, представляющих поля результирующего набора
- mysqli_field_seek() — Установить указатель поля на определенное смещение
mysqli_fetch_fields
This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.
Parameters
Return Values
Returns an array of objects containing field definition information.
Property | Description |
---|---|
name | The name of the column |
orgname | Original column name if an alias was specified |
table | The name of the table this field belongs to (if not calculated) |
orgtable | Original table name if an alias was specified |
max_length | The maximum width of the field for the result set. As of PHP 8.1, this value is always 0 . |
length | The width of the field, in bytes, as specified in the table definition. Note that this number (bytes) might differ from your table definition value (characters), depending on the character set you use. For example, the character set utf8 has 3 bytes per character, so varchar(10) will return a length of 30 for utf8 (10*3), but return 10 for latin1 (10*1). |
charsetnr | The character set number (id) for the field. |
flags | An integer representing the bit-flags for the field. |
type | The data type used for this field |
decimals | The number of decimals used (for integer fields) |
Examples
Example #1 Object-oriented style
$mysqli = new mysqli ( «127.0.0.1» , «root» , «foofoo» , «sakila» );
?php
/* check connection */
if ( $mysqli -> connect_errno ) printf ( «Connect failed: %s\n» , $mysqli -> connect_error );
exit();
>
foreach (array( ‘latin1’ , ‘utf8’ ) as $charset )
// Set character set, to show its impact on some values (e.g., length in bytes)
$mysqli -> set_charset ( $charset );
$query = «SELECT actor_id, last_name from actor ORDER BY actor_id» ;
if ( $result = $mysqli -> query ( $query ))
/* Get field information for all columns */
$finfo = $result -> fetch_fields ();
foreach ( $finfo as $val ) printf ( «Name: %s\n» , $val -> name );
printf ( «Table: %s\n» , $val -> table );
printf ( «Max. Len: %d\n» , $val -> max_length );
printf ( «Length: %d\n» , $val -> length );
printf ( «charsetnr: %d\n» , $val -> charsetnr );
printf ( «Flags: %d\n» , $val -> flags );
printf ( «Type: %d\n\n» , $val -> type );
>
$result -> free ();
>
>
$mysqli -> close ();
?>
Example #2 Procedural style
$link = mysqli_connect ( «127.0.0.1» , «my_user» , «my_password» , «sakila» );
?php
/* check connection */
if ( mysqli_connect_errno ()) printf ( «Connect failed: %s\n» , mysqli_connect_error ());
exit();
>
foreach (array( ‘latin1’ , ‘utf8’ ) as $charset )
// Set character set, to show its impact on some values (e.g., length in bytes)
mysqli_set_charset ( $link , $charset );
$query = «SELECT actor_id, last_name from actor ORDER BY actor_id» ;
if ( $result = mysqli_query ( $link , $query ))
/* Get field information for all columns */
$finfo = mysqli_fetch_fields ( $result );
foreach ( $finfo as $val ) printf ( «Name: %s\n» , $val -> name );
printf ( «Table: %s\n» , $val -> table );
printf ( «Max. Len: %d\n» , $val -> max_length );
printf ( «Length: %d\n» , $val -> length );
printf ( «charsetnr: %d\n» , $val -> charsetnr );
printf ( «Flags: %d\n» , $val -> flags );
printf ( «Type: %d\n\n» , $val -> type );
>
mysqli_free_result ( $result );
>
>
The above examples will output:
====================== Character Set: latin1 ====================== Name: actor_id Table: actor Max. Len: 3 Length: 5 charsetnr: 63 Flags: 49699 Type: 2 Name: last_name Table: actor Max. Len: 12 Length: 45 charsetnr: 8 Flags: 20489 Type: 253 ====================== Character Set: utf8 ====================== Name: actor_id Table: actor Max. Len: 3 Length: 5 charsetnr: 63 Flags: 49699 Type: 2 Name: last_name Table: actor Max. Len: 12 Length: 135 charsetnr: 33 Flags: 20489
See Also
- mysqli_num_fields() — Gets the number of fields in the result set
- mysqli_fetch_field_direct() — Fetch meta-data for a single field
- mysqli_fetch_field() — Returns the next field in the result set