sql >> Database teknologi >  >> RDS >> Mysql

hvordan aktiverer man automatisk genforbindelse til databasen i PHP?

Nogle gange, når din MySQL-forbindelse åbnede for længe, ​​vil forbindelsen til DB'en blive afbrudt, når tiden uden en forespørgsel overstiger wait_timeout-værdien i my.cnf. Du vil få "MySQL-serveren er gået væk" timeout-fejl.

Sådan implementerer jeg automatisk gentilslutning i min kode:

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

Se her for mere information om mysql_ping



  1. MySQL:ALTER IGNORE TABLE TILFØJ UNIK, hvad vil blive afkortet?

  2. Vend den naturlige rækkefølge af en MySQL-tabel uden ORDER BY?

  3. Fast i opbygningen af ​​MySQL-forespørgsel

  4. Sådan opretter du forbindelse til mysql ved hjælp af ipv6 fra wordpress