(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.
read
Eine Liste der Verbindungen, die auf ausstehende Ergebnisse geprüft werden sollen, die gelesen werden können.
error
Eine Liste der Verbindungen, bei denen ein Fehler aufgetreten ist, z. B. ein Abfragefehler oder eine unterbrochene Verbindung.
reject
Eine Liste der Verbindungen, die abgelehnt wurden, weil keine asynchrone Abfrage durchgeführt wurde, für die die Funktion Ergebnisse abfragen könnte.
seconds
Die Maximale Anzahl von Sekunden, die gewartet werden soll; muss nicht-negativ sein.
microseconds
Die 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 )