Php/docs/mysqli.poll

提供:Dev Guides
< Php
移動先:案内検索

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
)

参考