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

PHPでデータベースの自動再接続を有効にする方法は?

    MySQL接続が長時間開いていると、クエリがない時間がmy.cnfのwait_timeout値を超えると、DBへの接続が切断されることがあります。 「MySQLサーバーがなくなりました」タイムアウトエラーが発生します。

    これが私のコードに自動再接続を実装する方法です:

    class databaseClass {
        var $conn;
        var $db;
    
        public function __construct() {
            $this->connect();
        }
    
        public function connect() {
            $this->conn = mysql_connect(DB_HOST, DB_USER, DB_PASS);
            $this->db = mysql_select_db(DB_NAME, $this->conn);
        }
    
        public function disconnect() {
            mysql_close($this->conn);
        }
    
        public function reconnect() {
            $this->disconnect();
            $this->connect();
        }
    
        public function queryCompanyExist($company) {
            //auto reconnect if MySQL server has gone away
            if (!mysql_ping($this->conn)) $this->reconnect();
    
            $query =  "SELECT name FROM company WHERE name='$company'";
            $result = mysql_query($query);
            if (!$result) print mysql_error() . "\r\n";
            return mysql_fetch_assoc($result);
        }
    }
    

    mysql_ping の詳細については、こちらを参照してください。



    1. MyDACに保存されている関数の戻り値

    2. なぜSQLSTATE[HY000]:一般的なエラーですか?

    3. mySQLデータベースで既存のユーザーをチェックする最良の方法は?

    4. MySQLでsprintfに相当するものはありますか?