(PHP 5 >= 5.3.0, PHP 7, PHP 8)
mysqli::poll -- mysqli_poll — Überprüft den Status von Verbindungen
Objektorientierter Stil
&$read,&$error,&$reject,$seconds,$microseconds = 0Prozeduraler Stil
&$read,&$error,&$reject,$seconds,$microseconds = 0Überprüft den Status von Verbindungen. Diese Methode kann als statische Methode verwendet werden.
Hinweis:
Nur in mysqlnd verfügbar.
readEine Liste der Verbindungen, die auf ausstehende Ergebnisse geprüft werden sollen, die gelesen werden können.
errorEine Liste der Verbindungen, bei denen ein Fehler aufgetreten ist, z. B. ein Abfragefehler oder eine unterbrochene Verbindung.
rejectEine Liste der Verbindungen, die abgelehnt wurden, weil keine asynchrone Abfrage durchgeführt wurde, für die die Funktion Ergebnisse abfragen könnte.
secondsDie Maximale Anzahl von Sekunden, die gewartet werden soll; muss nicht-negativ sein.
microsecondsDie Maximale Anzahl von Mikrosekunden, die gewartet werden soll; muss nicht-negativ sein.
Gibt bei Erfolg die Anzahl der verfügbaren Verbindungen zurück, andernfalls
false.
Wenn weder read noch error
übergeben wird, wird ein ValueError geworfen.
| Version | Beschreibung |
|---|---|
| 8.3.0 |
Wenn weder read noch
error übergeben wird, wird nun eine
ValueError-Exception geworfen.
|
Beispiel #1 mysqli_poll()-Beispiel
<?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-Fehler: %s", mysqli_error($link)));
$processed++;
}
} while ($processed < count($all_links));
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[0] => test
)