mysqli::poll()

等待数据库连接上的可用事件

首字母:M

函数名:mysqli::poll()

适用版本:PHP 5 >= 5.3.0, PHP 7

用法:mysqli::poll() 函数用于等待数据库连接上的可用事件。它返回一个整数,表示有多少个套接字有事件可用,或者在超时之前没有事件可用时返回 0。这个函数通常用于非阻塞的 MySQLi 连接。

语法:int mysqli::poll(array &$read, array &$error, array &$reject, int $seconds [, int $microseconds = 0])

参数:

  • &$read:一个包含读事件套接字的数组
  • &$error:一个包含错误事件套接字的数组
  • &$reject:一个包含拒绝事件套接字的数组
  • $seconds:等待事件的秒数
  • $microseconds:等待事件的微秒数(可选,默认为0)

返回值:返回一个整数,表示有多少个套接字有事件可用,或者在超时之前没有事件可用时返回 0。

示例:

options(MYSQLI_OPT_NONBLOCK, true);
// 准备套接字数组
$read = array($mysqli);
$error = array($mysqli);
$reject = array($mysqli);
// 等待事件并检查返回值
$result = $mysqli->poll($read, $error, $reject, 5);
if ($result === false) {
 // 发生错误
 echo "Polling failed: " . $mysqli->error;
} else if ($result === 0) {
 // 超时,没有事件可用
 echo "No events available.";
} else {
 // 有事件可用
 echo "Events available: " . $result;
 // 处理读事件
 foreach ($read as $socket) {
 // 处理读事件的逻辑
 }
 // 处理错误事件
 foreach ($error as $socket) {
 // 处理错误事件的逻辑
 }
 // 处理拒绝事件
 foreach ($reject as $socket) {
 // 处理拒绝事件的逻辑
 }
}
// 关闭连接
$mysqli->close();
?>

以上示例演示了如何使用 mysqli::poll() 函数等待数据库连接上的可用事件。首先,创建一个非阻塞的 MySQLi 连接,并设置相应的选项。然后,准备包含套接字的数组,并调用 mysqli::poll() 函数等待事件。根据返回值,可以判断是否有事件可用,如果有,可以处理相应的事件。最后,关闭连接。

请注意,此示例仅用于演示 mysqli::poll() 的基本用法,实际应用中可能需要根据具体需求进行适当的调整和优化。

同首字母函数