mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli::poll -- mysqli_pollОпрашивает подключения

Описание

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

publicstaticmysqli::poll(
    ?array&$read,
    ?array&$error,
    array&$reject,
    int$seconds,
    int$microseconds = 0
): int|false

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

mysqli_poll(
    ?array&$read,
    ?array&$error,
    array&$reject,
    int$seconds,
    int$microseconds = 0
): int|false

Функция опрашивает подключения. Функцию разрешно вызывать статически.

Замечание:

Доступно только с модулем mysqlnd.

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

read

Список соединений для проверки оставшихся результатов, которые можно прочитать.

error

Список соединений, на которых произошли ошибки, например, не удался запрос или соединение было потеряно.

reject

Список соединений, которые были отклонены, потому что на них не был запущен асинхронный запрос, с которым функция могла бы получить результат опроса.

seconds

Максимальное количество секунд ожидания, не должно быть отрицательным.

microseconds

Максимальное количество миллисекунд ожидания, не должно быть отрицательным.

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

Функция возвращает количество готовых к работе соединений в случае успешного выполнения, false в случае неудачи.

Ошибки

Функция выбрасывает исключение ValueError, если не передан ни аргумент read, ни аргумент error.

Список изменений

ВерсияОписание
8.3.0 Теперь функция выбрасывает исключение ValueError, если не передан ни аргумент read, ни аргумент error.

Примеры

Пример #1 Пример использования функции mysqli_poll()

<?php

$link1
= mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
$links = $errors = $reject = array();
foreach (
$all_links as $link) {
$links[] = $errors[] = $reject[] = $link;
}
if (!
mysqli_poll($links, $errors, $reject, 1)) {
continue;
}
foreach (
$links as $link) {
if (
$result = $link->reap_async_query()) {
print_r($result->fetch_row());
if (
is_object($result))
mysqli_free_result($result);
} else die(
sprintf("Ошибка MySQLi: %s", mysqli_error($link)));
$processed++;
}
} while (
$processed < count($all_links));

?>

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

Array ( [0] => test )

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

To Top