mysqli::poll
mysqli_poll
接続を問い合わせる
説明
オブジェクト指向型
public static intfalse mysqli::poll(
arraynull &$read
,
arraynull &$error
,
array &$reject
,
int $seconds
,
int $microseconds
= 0
)
intfalse mysqli_poll(
arraynull &$read
,
arraynull &$error
,
array &$reject
,
int $seconds
,
int $microseconds
= 0
)
注意:
mysqlnd でのみ使用可能です。
パラメータ
-
read
-
読み込める結果が残っている接続のリスト。
-
error
-
クエリが失敗した、あるいは接続が切断されたなどのエラーが発生した接続のリスト。
-
reject
-
関数から結果を取得できるような非同期クエリが実行されていないという理由で、
拒否された接続のリスト。
-
seconds
-
待ち続ける秒数の最大。非負の数でなければなりません。
-
microseconds
-
待ち続けるマイクロ秒数の最大。非負の数でなければなりません。
戻り値
成功した場合に使用できる接続の数、それ以外の場合に false
を返します。
エラー / 例外
read
と error
を両方渡さなかった場合には、
ValueError がスローされます。
例
例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));
?>
参考
- mysqli_query
- mysqli_reap_async_query