sql >> データベース >  >> RDS >> Mysql

サーバーに到達できない場合、PHPのPDOはMySQLのATTR_TIMEOUTオプションを無視します

    置くだけ

    ini_set("default_socket_timeout", 2);
    

    PDO()接続文字列の前。

    (Windowsでテスト済みですが、Linuxでも問題ありません。)

    なぜですか?

    マニュアルでこれを追いかける:

    mysqlndドライバーは、基になる接続にソケットを使用します。タイムアウトを設定するには、ソケット(ストリーム)タイムアウト関数を使用する必要があります。 (参照:http://php.net/manual/en/mysqlnd.notes。 php

    より詳細な制御が必要な場合は、実際のソケットをより具体的に制御できる可能性があります。これはUNIXのみであるため、テストしていません。 mysqlndが使用するソケットを設定するには、ini設定を使用してソケットを指定できます(参照: http://php.net/manual/en/ref.pdo-mysql.connection.php

    http://phpを参照してください。 net / manual / en / ref.pdo-mysql.php#ini.pdo-mysql.default-socket その設定について

    その後、 http://phpを使用してタイムアウトを設定できる場合があります。 .net / manual / en / function.stream-set-timeout.php

    しかし、おそらくデフォルトを設定し、完了したらリセットする方が簡単です...



    1. SQLServerのネストされたトランザクションでエラーを処理する方法

    2. バックエンドデータベースが新しい場所に移動した後、Access2016でリンクされたテーブルを更新する方法

    3. SQL Server Management Studio(SSMS)からDDLスクリプト(作成)を生成する方法-SQL Server/TSQLチュートリアルパート17

    4. MySQLでのUPPER()関数のしくみ