mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7, PHP 8)

mysqli::use_result -- mysqli_use_result Готовит результирующий набор на сервере к использованию

Описание

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

publicmysqli::use_result(): mysqli_result|false

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

mysqli_use_result(mysqli$mysql): mysqli_result|false

Используется для подготовки к использованию результирующего набора последнего запроса, запущенного функцией mysqli_real_query().

Чтобы результаты запроса стали доступны, после самого запроса необходимо вызывать либо эту функцию, либо mysqli_store_result(). Также вызов какой-либо из них предотвратит отказ следующих запросов на этом же соединении.

Замечание:

mysqli_use_result() не передаёт весь результирующий набор на клиента, а следовательно невозможно воспользоваться функцией mysqli_data_seek(), чтобы перемещаться по нему. Для этого нужно воспользоваться функцией mysqli_store_result(). mysqli_use_result() не следует использовать, если на стороне клиента данные результирующего набора долго обрабатываются, так как это задерживает работу сервера и не даёт другим процессам обновлять таблицы, данные из которых есть в результирующем наборе.

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

У этой функции нет параметров.

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

Возвращает небуферизованный объект результата запроса или false в случае возникновения ошибки.

Ошибки

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

Примеры

Пример #1 Пример использования mysqli::use_result()

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

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


if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";


if ($mysqli->multi_query($query)) {
do {

if ($result = $mysqli->use_result()) {
while (
$row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}

if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while (
$mysqli->next_result());
}


$mysqli->close();
?>

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

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


if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";


if (mysqli_multi_query($link, $query)) {
do {

if ($result = mysqli_use_result($link)) {
while (
$row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}

if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (
mysqli_next_result($link));
}


mysqli_close($link);
?>

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

my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer

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

To Top