mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_assoc -- mysqli_fetch_assocВыбирает следующую строку из набора результатов и помещает её в ассоциативный массив

Описание

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

publicmysqli_result::fetch_assoc(): array|null|false

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

mysqli_fetch_assoc(mysqli_result$result): array|null|false

Выбирает одну строку данных из набора результатов и возвращает её в виде ассоциативного массива. Каждый последующий вызов этой функции будет возвращать следующую строку в наборе результатов или null, если строк больше нет.

Если у двух и более столбцов в наборе результатов одинаковое имя, последний столбец будет иметь приоритет и перезапишет любые предыдущие данные. Для доступа к нескольким столбцам с одинаковым именем можно использовать функцию mysqli_fetch_row() для выборки массива с числовым индексом или в списке выбора SQL-запроса можно использовать псевдонимы, чтобы задать столбцам разные имена.

Замечание: Имена полей, возвращаемые этой функцией являются зависимыми от регистра.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

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

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

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

Возвращает ассоциативный массив, представляющий выбранную строку, где каждое свойство представляет имя столбца набора результатов, null, если в наборе результатов больше нет строк или false, если возникла ошибка.

Примеры

Пример #1 Пример использования mysqli_result::fetch_assoc()

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

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);


while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

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

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);


while ($row = mysqli_fetch_assoc($result)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Вывод приведённых примеров будет похож на:

Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)

Пример #2 Сравнение использования mysqli_resultiterator и mysqli_result::fetch_assoc()

mysqli_result можно повторить с помощью foreach. Результирующий набор всегда будет повторяться с первой строки, независимо от текущей позиции.

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';

// Используем итераторы
$result = $mysqli->query($query);
foreach (
$result as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

echo
"\n==================\n";

// Не используем итераторы
$result = $mysqli->query($query);
while (
$row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Вывод приведённого примера будет похож на:

Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA) ================== Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)

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

  • mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
  • mysqli_fetch_row() - Выбирает следующую строку из набора результатов и помещает её в обычный массив
  • mysqli_fetch_object() - Выбирает следующую строку из набора результатов в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку
To Top