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 ] ) : int

手続き型

mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] ) : 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$reject1)) {
        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
)

参考