mysqli::poll

mysqli_poll

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

mysqli::poll -- mysqli_pollVerifica el estado de la conexión

Descripción

Estilo orientado a objetos

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

Estilo por procedimientos

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

Verifica el estado de la conexión. El método puede ser utilizado como estático.

Nota:

Disponible sólo con mysqlnd.

Parámetros

read

Lista de conexiones para verificar resultados excepcionales que pueden ser leídos.

error

Lista de conexiones en las que se ha producido un error, por ejemplo, fallos en consultas o pérdidas de conexión.

reject

Lista de conexiones rechazadas porque se ejecutaron consultas no asíncronas y para las cuales la función podría devolver resultados.

seconds

Número de segundos de espera máxima, debe ser positivo.

microseconds

Número de microsegundos de espera máxima, debe ser positivo.

Valores devueltos

Devuelve el número de conexiones disponibles en caso de éxito, false en caso contrario.

Errores/Excepciones

Se lanza una ValueError cuando ni el argumento read ni el argumento error son transmitidos.

Historial de cambios

Versión Descripción
8.3.0 Ahora lanza una excepción ValueError cuando ni el argumento read ni el argumento error son transmitidos.

Ejemplos

Ejemplo #1 Ejemplo con 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("Error MySQLi: %s", mysqli_error($link)));
$processed++;
}
} while (
$processed < count($all_links));
?>

El resultado del ejemplo sería:

Array
(
    [0] => test
)

Ver también