查詢

mysqli::poll()函式—用法及示例

「 等待資料庫連線上的可用事件 」


函式名: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() 的基本用法,實際應用中可能需要根據具體需求進行適當的調整和最佳化。

補充糾錯
上一個函式: mysqli_get_links_stats()函式
下一個函式: mysql_db_query()函式
熱門PHP函式
分享連結