Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara melakukan ping ke MySQL db dan menghubungkan kembali menggunakan PDO

Saya mencoba mencari solusi untuk masalah yang sama dan saya menemukan jawaban berikutnya:

class NPDO {
    private $pdo;
    private $params;

    public function __construct() {
        $this->params = func_get_args();
        $this->init();
    }

    public function __call($name, array $args) {
        return call_user_func_array(array($this->pdo, $name), $args);
    }

    // The ping() will try to reconnect once if connection lost.
    public function ping() {
        try {
            $this->pdo->query('SELECT 1');
        } catch (PDOException $e) {
            $this->init();            // Don't catch exception here, so that re-connect fail will throw exception
        }

        return true;
    }

    private function init() {
        $class = new ReflectionClass('PDO');
        $this->pdo = $class->newInstanceArgs($this->params);
    }
}

Cerita lengkapnya di sini:https://terenceyim. wordpress.com/2009/01/09/adding-ping-function-to-pdo/


Seseorang berpikir untuk menggunakan PDO::ATTR_CONNECTION_STATUS , tetapi dia menemukan bahwa:"$db->getAttribute(PDO::ATTR_CONNECTION_STATUS) terus membalas “Localhost melalui soket UNIX” bahkan setelah menghentikan mysqld".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL INSERT ... PADA DUPLICATE KEY UPDATE di Java:Cara Membedakan status Disisipkan/Diperbarui/NoChange

  2. Kesalahan sintaks MySQL dalam pernyataan WHILE

  3. Menu Arsip Blog MYSQL PHP berdasarkan Tahun dan Bulan

  4. Bagaimana menghubungkan ke database menggunakan klien MySQL Workbench

  5. Pemulihan setelah permintaan pembaruan MySQL yang salah?