(PHP 5 >= 5.3.0, PHP 7, PHP 8)
mysqli::poll -- mysqli_poll — Опрашивает подключения
Объектно-ориентированный стиль
&$read
,&$error
,&$reject
,$seconds
,$microseconds
= 0Процедурный стиль
&$read
,&$error
,&$reject
,$seconds
,$microseconds
= 0Функция опрашивает подключения. Функцию разрешно вызывать статически.
Замечание:
Доступно только с модулем 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 )