Связывает результаты подготовленного запроса с переменными

# mysqli_stmt::fetch

# mysqli_stmt_fetch

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Связывает результаты подготовленного запроса с переменными

### Описание

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

public function mysqli_stmt::fetch(): ?bool

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

function mysqli_stmt_fetch(mysqli_stmt `$statement`): ?bool

Функция связывает результаты подготовленного выражения с переменными, которые определили функцией mysqli_stmt_bind_result().

> Замечание:

> Обратите внимание, что каждый столбец требуется связать перед вызовом функции mysqli_stmt_fetch().

> Замечание:

> Функция не буферизует данные при передаче без вызова функции mysqli_stmt_store_result(), что снижает производительность (но также снижает затраты памяти).

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

`stmt`
  Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

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

Возвращаемые значения
Значение | Описание
--- | ---
`true` | Успех. Функция получила данные
`false` | Возникла ошибка
`null` | Больше нет строк и данных или возникло усечение данных

### Ошибки

Если уведомления об ошибках mysqli включены (`MYSQLI_REPORT_ERROR`) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим `MYSQLI_REPORT_STRICT`, вместо этого будет выброшено исключение mysqli_sql_exception.

### Примеры

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

    <?php

    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    /* Проверяем соединение */
    if (mysqli_connect_errno()) {
        printf("Попытка соединения не удалась: %s\n", mysqli_connect_error());
        exit();
    }

    $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

    if ($stmt = $mysqli->prepare($query)) {
        /* Выполняем запрос */
        $stmt->execute();

        /* Связываем переменные результата */
        $stmt->bind_result($name, $code);

        /* Получаем значения */
        while ($stmt->fetch()) {
            printf ("%s (%s)\n", $name, $code);
        }

        /* Завершаем запрос */
        $stmt->close();
    }

    /* Закрываем соединение */
    $mysqli->close();

    ?>

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

    <?php

    $link = mysqli_connect("localhost", "my_user", "my_password", "world");

    /* Проверяем соединение */
    if (mysqli_connect_errno()) {
        printf("Попытка соединения не удалась: %s\n", mysqli_connect_error());
        exit();
    }

    $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

    if ($stmt = mysqli_prepare($link, $query)) {
        /* Выполняем запрос */
        mysqli_stmt_execute($stmt);

        /* Связываем переменные результата */
        mysqli_stmt_bind_result($stmt, $name, $code);

        /* Получаем значения */
        while (mysqli_stmt_fetch($stmt)) {
            printf ("%s (%s)\n", $name, $code);
        }

        /* Завершаем запрос */
        mysqli_stmt_close($stmt);
    }

    /* Закрываем соединение */
    mysqli_close($link);

    ?>

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

    Rockford (USA)
    Tallahassee (USA)
    Salinas (USA)
    Santa Clarita (USA)
    Springfield (USA)

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

- mysqli_prepare() - Подготавливает SQL выражение к выполнению
- mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
- mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
- mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата

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