PHP mysqli_poll MySQLi 函数

  • 定义和用法

    mysqli_poll - 轮询连接
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 v5.3.0+支持 支持
  • 语法

    mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec = 0 ]  )
    
    轮询连接。 仅可用于 mysqlnd。 此方法是静态的。
  • 参数

    参数 必需的 描述
    read 要检测是否存在可以读取的结果集的连接的数组。
    error 发生错误的,例如:SQL 语句执行失败或者已经断开的 连接的数组。
    reject 没有可以读取的结果集的连接 的数组。
    sec 秒为单位的最大等待时间,不可以为负数。
    usec 微秒为单位的最大等待时间,不可以为负数。
  • 返回值

    成功执行则返回存在可以读取结果集的连接数量, 否则 FALSE。
  • 示例

    <?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() - 获取异步查询的结果