Выбирает следующую строку из набора результатов в виде объекта

# mysqli_result::fetch_object

# mysqli_fetch_object

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_object -- mysqli_fetch_object — Выбирает следующую строку из набора результатов в виде объекта

### Описание

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

public function mysqli_result::fetch_object(string `$class` = "stdClass", array `$constructor_args` = []): object|null|false

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

function mysqli_fetch_object(mysqli_result `$result`, string `$class` = "stdClass", array `$constructor_args` = []): object|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().
`class`

  Имя класса, объект которого нужно инстанцировать, задать значения его свойств и вернуть. Если параметр не задан, функция вернёт объект stdClass.

`constructor_args`

  Необязательный массив (array) параметров, которые будут переданы конструктору класса `class`.

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

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

### Ошибки

Функция выбрасывает исключение ValueError, когда аргумент `constructor_args` не пуст, а класс `class` не имеет конструктора.

### Список изменений

Версия | Описание
--- | ---
8.3.0 | Теперь функция выбрасывает исключение ValueError, когда аргумент `constructor_args` не пуст, а класс `class` не имеет конструктора. Ранее функция выбрасывала исключение Exception.
8.0.0 | Параметр `constructor_args` теперь принимает пустой массив `[]` для конструкторов без параметров; раньше функция выбрасывала исключение.

### Примеры

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

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

    <?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 ($obj = $result->fetch_object()) {
        printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    ?>

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

    <?php

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

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

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

    while ($obj = mysqli_fetch_object($result)) {
        printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    ?>

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

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

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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open