Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak włączyć automatyczne ponowne łączenie bazy danych w PHP?

Czasami, gdy połączenie MySQL jest otwarte zbyt długo, połączenie z bazą danych zostanie przerwane, gdy czas bez zapytania przekroczy wartość wait_timeout w my.cnf. Otrzymasz błąd limitu czasu "Serwer MySQL poszedł dalej".

W ten sposób implementuję automatyczne ponowne łączenie w moim kodzie:

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);
    }
}

Zajrzyj tutaj, aby uzyskać więcej informacji na temat mysql_ping



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podświetl Numer bieżącej strony PHP Pagination

  2. Zapytanie MySQL odnajdujące wartości w ciągu znaków oddzielonych przecinkami

  3. MySQL - Wartość 1 w DECIMAL (2, 2) wychodzi jako 0,99

  4. Jak zdalnie debugować jar z netbeans

  5. zaznaczanie wierszy, które wystąpiły więcej niż trzy razy