PDO による接続タイムアウトの設定
PDO を使用して MySQL サーバーからデータを取得する場合、サーバーがアクセスできない。デフォルトでは、PDO は例外をスローするのに MySQL の場合は 2 分以上かかり、PostgreSQL の場合は 30 秒かかります。これは非常に長くなる可能性があります。
この問題を軽減するには、データベースへの接続のタイムアウトを設定できます。次の構文を使用します:
$DBH = new PDO( "mysql:host=$host;dbname=$dbname", $username, $password, array( PDO::ATTR_TIMEOUT => 5, // in seconds PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ) );
PDO::ATTR_TIMEOUT 属性を設定すると、PDO が接続を確立するまで待機する最大時間を秒単位で指定できます。上の例では、接続試行は 5 秒後にタイムアウトになります。
接続タイムアウトを設定しても即時フェイルオーバーが保証されるわけではないことに注意することが重要です。タイムアウトが経過する前にサーバーがオンラインに戻ると、PDO は接続を正常に確立します。ただし、接続の問題を処理するためのより応答性の高いアプローチが提供され、アプリケーションが使用できないサーバーの待機に費やす時間が短縮されます。
以上がPDO の接続タイムアウトを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。