mysqli::poll
mysqli_poll
(PHP 5 >= 5.3.0, PHP 7)
mysqli::poll -- mysqli_poll — 接続を問い合わせる
説明
オブジェクト指向型
public static mysqli::poll
( array &$read
, array &$error
, array &$reject
, int $sec
[, int $usec
= 0
] ) : int
手続き型
mysqli_poll
( array &$read
, array &$error
, array &$reject
, int $sec
[, int $usec
= 0
] ) : int
接続を問い合わせます。 mysqlnd でのみ使用可能です。 このメソッドは static メソッドとして使えます。
パラメータ
read
- 読み込める結果が残っている接続のリスト。
error
- クエリが失敗した、あるいは接続が切断されたなどのエラーが発生した接続のリスト。
reject
- 関数から結果を取得できるような非同期クエリが実行されていないという理由で、 拒否された接続のリスト。
sec
- 待ち続ける秒数の最大。非負の数でなければなりません。
usec
- 待ち続けるマイクロ秒数の最大。非負の数でなければなりません。
返り値
成功した場合に使用できる接続の数、それ以外の場合に false
を返します。
例
例1 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));?>
上の例の出力は以下となります。
Array ( [0] => test )