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