mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7)

mysqli_result::fetch_fields -- mysqli_fetch_fieldsВозвращает массив объектов, представляющих поля результирующего набора

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_fields ( ) : array

Процедурный стиль

mysqli_fetch_fields ( mysqli_result $result ) : array

Эта функция служит для тех же целей, что и mysqli_fetch_field(), с той лишь разницей, что возвращает не один объект для столбца, а массив таких объектов.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает массив объектов, содержащих метаданные полей или false, если доступных столбцов нет.

Свойства объекта
Свойство Описание
name Имя столбца
orgname Исходное имя столбца, если у него есть псевдоним
table Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable Исходное имя таблицы, если есть псевдоним
max_length Максимальная ширина поля результирующего набора.
length Длина поля в байтах, как она задана при определении таблицы. Обратите внимание, что данная величина (в байтах) может отличаться от величины в символах, указанной в опредлелении поля таблицы, так как в разных кодировках один символ может может записываться несколькими байтами. Например, набор символов utf8 имеет 3 байта на символ, таким образом поле VARCHAR(10) в кодировке UTF-8 вернет длину 30 байтов = 10 символов * 3 байта на символ, а для кодировки LATIN1 - длину 10, так как в этой кодировке один символ занимает один байт.
charsetnr Числовой идентификатор кодировки.
flags Целое число, представляющее битовые флаги для поля.
type Тип данных поля
decimals Число знаков после запятой (для целочисленных полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli 
= new mysqli("127.0.0.1""root""foofoo""sakila");

/* Проверяем соединение */
if ($mysqli->connect_errno) {
    
printf("Connect failed: %s\n"$mysqli->connect_error);
    exit();
}

foreach (array(
'latin1''utf8') as $charset) {

    
// Устанавливаем кодировку для демонстрации ее влияния на некоторые
    
$mysqli->set_charset($charset);

    
$query "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo 
"======================\n";
    echo 
"Character Set: $charset\n";
    echo 
"======================\n";

    if (
$result $mysqli->query($query)) {

        
/* Читаем информацию по всем столбцам */
        
$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();
?>

Пример #2 Процедурный стиль

<?php
$link 
mysqli_connect("127.0.0.1""my_user""my_password""sakila");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

foreach (array(
'latin1''utf8') as $charset) {

    
// Устанавливаем кодировку для демонстрации ее влияния на некоторые
    
mysqli_set_charset($link$charset);

    
$query "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo 
"======================\n";
    echo 
"Character Set: $charset\n";
    echo 
"======================\n";

    if (
$result mysqli_query($link$query)) {

        
/* Читаем информацию по всем столбцам */
        
$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);
    }
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

======================
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

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field_direct() - Получение метаданных конкретного поля
  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора