mysqli::poll

mysqli_poll

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

mysqli::poll -- mysqli_pollSondagem de conexões

Descrição

Estilo orientado a objetos

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

Estilo procedural

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

Faz sondagem de conexões. Este método pode ser usado como static.

Note:

Disponível apenas com o mysqlnd.

Parâmetros

read

Lista de conexões a verificar por resultados marcantes que possam ser lidos.

error

Lista de conexões nas quais um erro ocorreu, por exemplo, falha na consulta ou conexão perdida.

reject

Lista de conexões rejeitadas porque nenhuma consulta assícrona foi executada para que a função pudesse sondar os resultados.

seconds

Número máximo de segundos a esperar, deve ser não negativo.

microseconds

Número máximo de microssegundos a esperar, deve ser não negativo.

Valor Retornado

Retorna o número de conexões prontas em caso de sucesso, false caso contrário.

Erros/Exceções

Uma exceção ValueError é lançada quando nem o parâmetro read nem o parâmetro error são passados.

Registro de Alterações

Versão Descrição
8.3.0 Agora lançã uma exceção ValueError quando nem o parâmetro read nem o parâmetro error são passados.

Exemplos

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

O exemplo acima produzirá:

Array
(
    [0] => test
)

Veja Também