(PHP 5, PHP 7, PHP 8)
mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Привязка переменных к подготовленному запросу для размещения результата
Объектно-ориентированный стиль
Процедурный стиль
Привязывает столбцы результирующего набора к переменным.
При вызове 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