mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7, PHP 8)

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_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

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

Метод возвращает массив объектов, которые содержат информацию об определении полей.

Свойства объекта
Свойство Описание
name Имя столбца
orgname Исходное имя столбца, если указали псевдоним
table Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable Исходное имя таблицы, если указали псевдоним
def Неиспользуемый. Всегда пустая строка
db Имя базы данных
catalog Неиспользуемый. Всегда «def»
max_length Максимальная ширина поля результирующего набора. Начиная с PHP 8.1 это значение всегда равно 0
length Ширина поля в байтах. Для строковых столбцов значение длины зависит от кодировки соединения. Например, если кодировка — latin1, однобайтовый набор символов, значение длины для запроса SELECT 'abc' равно 3. Если кодировка — utf8mb4, многобайтовый набор символов, в котором символы занимают до 4 байтов, значение длины равно 12
charsetnr Номер кодировки для поля
flags Целое число, которое представляет битовые флаги для поля
type Тип данных поля
decimals Количество десятичных знаков для числовых полей и точность долей секунды для временных полей

Примеры

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

<?php

$mysqli
= new mysqli("127.0.0.1", "root", "foofoo", "sakila");

/* Проверяем соединение */
if ($mysqli->connect_errno) {
printf("Не удалось подключиться: %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("Не удалось подключиться: %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

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