mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7, PHP 8)

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

Описание

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

publicmysqli_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

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

To Top