# mysqli::poll

# mysqli_poll

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

mysqli::poll -- mysqli_poll — Vérifie l'état de la connexion

### Description

Style orienté objet

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

Style procédural

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

Vérifie l'état de la connexion. La méthode peut être utilisée comme statique.

> Note:

> Disponible uniquement avec mysqlnd.

### Liste de paramètres

`read`

  Liste des connexions à vérifier pour les résultats exceptionnels qui peuvent être lus.

`error`

  Liste des connexions sur lesquelles une erreur est survenue, par exemple, des échecs de requêtes, ou des pertes de connexion.

`reject`

  Liste des connexions rejetées car des requêtes non-asynchrones y ont été exécutées et pour lesquelles la fonction pourrait sortir des résultats.

`seconds`

  Nombre de secondes d'attente maximale, doit être positif.

`microseconds`

  Nombre de micro-secondes d'attente maximale, doit être positif.

### Valeurs de retour

Retourne le nombre de connexions disponibles en cas de succès, `false` sinon.

### Erreurs / Exceptions

Une ValueError est lancée lorsque ni l'argument `read` ni l'argument `error` ne sont transmis.

### Historique

Version | Description
--- | ---
8.3.0 | Lance désormais une exception ValueError lorsque ni l'argument `read` ni l'argument `error` ne sont transmis.

### Exemples

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

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => test
    )

### Voir aussi

- mysqli_query() - Exécute une requête sur la base de données
- mysqli_reap_async_query() - Lit un résultat pour une requête asynchrone