函式名: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。
示例:
<?php
// 建立一個非阻塞的 MySQLi 連線
$mysqli = new mysqli("localhost", "username", "password", "database");
$mysqli->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() 的基本用法,實際應用中可能需要根據具體需求進行適當的調整和最佳化。
熱門工具排行榜