PDO 連線逾時:詳細解決方案
簡介:
連接到資料庫有時可能需要因為網路問題或伺服器可用性等各種因素,導致時間過長。在使用生產系統時,這可能會特別令人沮喪。
PDO 屬性設定:
OP 嘗試使用具有 PDO::ATTR_TIMEOUT 屬性的 PDO::setAttribute() 設定逾時,但並沒有解決問題。這是因為逾時設定適用於 PDO 語句執行,而不適用於連線建立。
最佳解決方案:
設定連線逾時的建議解決方案是提供逾時值作為 PDO 物件初始化期間的設定參數。這可以透過在建構子選項數組中指定 PDO::ATTR_TIMEOUT 來實現。
範例程式碼:
以下程式碼示範如何為MySQL 設定5 秒的連線逾時資料庫連線:
<code class="php">$DBH = new PDO( "mysql:host=$host;dbname=$dbname", $username, $password, array( PDO::ATTR_TIMEOUT => 5, // in seconds PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ) );</code>
透過將PDO::ATTR_ERRMODE 設定為PDO::ERRMODE_EXCEPTION,任何資料庫錯誤或逾時都會觸發PDOException,可以擷取並進行對應處理。
以上是如何在 PHP 中設定 PDO 連線逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!