(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