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 中国語 Web サイトの他の関連記事を参照してください。