PHP mysqli::poll() / mysqli_poll() 函数用于轮询连接。该方法可以用作静态方法。
注意:仅适用于 mysqlnd。
语法
//面向对象风格
public mysqli::poll(read, error, reject, seconds, microseconds)
//面向过程风格
mysqli_poll(mysql, read, error, reject, seconds, microseconds)
参数
mysql | 必填。 仅适用于面向过程风格:指定 mysqli_connect() 或 mysqli_init() 返回的 mysqli 对象。 |
read | 必填。 指定连接列表以检查是否有可读取的未完成结果。 |
错误 | 必需。 指定发生错误的连接列表。例如 - 查询失败或丢失连接。 |
拒绝 | 必需。 指定被拒绝的连接列表,因为尚未运行该函数可以轮询结果的异步查询。 |
秒 | 必填。 指定等待的最大秒数。它必须是非负数。 |
微秒 | 可选。 指定等待的最大微秒数。必须为非负数。 |
返回值
成功时返回就绪连接数,否则返回 false。
示例:mysqli_poll() 示例
下面的示例显示了 mysqli_poll() 函数的用法。
<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'demo'", 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, 0, 50000)) {
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] => demo
)