Привязка переменных к подготовленному запросу для размещения результата

# mysqli_stmt::bind_result

# mysqli_stmt_bind_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Привязка переменных к подготовленному запросу для размещения результата

### Описание

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

public function mysqli_stmt::bind_result(mixed `&$var`, mixed `&...$vars`): bool

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

function mysqli_stmt_bind_result(mysqli_stmt `$statement`, mixed `&$var`, mixed `&...$vars`): bool

Привязывает столбцы результирующего набора к переменным.

При вызове mysqli_stmt_fetch() для выборки данных, протокол клиент-серверного взаимодействия MySQL помещает выбранные данные в переменные `var`/`vars`, привязанные к столбцам результата выборки.

Столбцы можно привязывать и перепривязывать многократно, даже когда результирующий набор уже частично выбран. Новая привязка даст эффект при следующем вызове mysqli_stmt_fetch().

> Замечание:

> Все столбцы должны быть привязаны к переменным после вызова mysqli_stmt_execute() и до вызова mysqli_stmt_fetch(). В зависимости от типов данных столбцов привязанные переменные могут неявно изменять свой PHP тип.

> Замечание:

> В зависимости от типов столбцов связанные переменные могут незаметно изменяться на соответствующий тип PHP.

Подсказка

Функция полезна для простых результатов. Чтобы получить повторяемый набор результатов или каждую строку как массив или объект, используйте mysqli_stmt_get_result().

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

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

  Привязываемая переменная.

`vars`

  Остальные привязываемые переменные.

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

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Примеры

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

    <?php

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

    /* подготовка запроса */
    $stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
    $stmt->execute();

    /* привязка переменных к подготовленному запросу */
    $stmt->bind_result($col1, $col2);

    /* получение значений */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

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

    <?php

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

    /* подготовка запроса */
    $stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
    mysqli_stmt_execute($stmt);

    /* привязка переменных к подготовленному запросу */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* получение значений */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

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

    AFG Afghanistan
    ALB Albania
    DZA Algeria
    ASM American Samoa
    AND Andorra

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

- mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result
- mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
- mysqli_stmt_execute() - Выполняет подготовленное утверждение
- mysqli_stmt_fetch() - Связывает результаты подготовленного запроса с переменными
- mysqli_prepare() - Подготавливает SQL выражение к выполнению
- mysqli_stmt_prepare() - Подготавливает утверждение SQL к выполнению

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