Опрашивает подключения

# mysqli::poll

# mysqli_poll

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

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

### Описание

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

public static function mysqli::poll(
?array `&$read`,
?array `&$error`,
array `&$reject`,
int `$seconds`,
int `$microseconds` = 0
): int|false

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

function 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
    )

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

- mysqli_query() - Выполняет запрос к базе данных
- mysqli_reap_async_query() - Получение результата асинхронного запроса

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