Php/docs/mysqli.poll
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
- 发生错误的,例如:SQL 语句执行失败或者已经断开的 连接的数组。
reject
- 没有可以读取的结果集的连接 的数组。
sec
- 秒为单位的最大等待时间,不可以为负数。
usec
- 微秒为单位的最大等待时间,不可以为负数。
返回值
成功执行则返回存在可以读取结果集的连接数量,
否则 false
。
范例
Example #1 A 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 )