Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं MySQL डीबी को पिंग कैसे करूं और पीडीओ का उपयोग करके फिर से कनेक्ट करूं?

मैंने उसी समस्या का समाधान खोजने की कोशिश की और मुझे अगला उत्तर मिला:

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

पूरी कहानी यहां:https://terenceyim. wordpress.com/2009/01/09/adding-ping-function-to-pdo/


कोई अन्य व्यक्ति PDO::ATTR_CONNECTION_STATUS का उपयोग करने के बारे में सोच रहा था , लेकिन उसे पता चला कि:"$db->getAttribute(PDO::ATTR_CONNECTION_STATUS) mysqld को रोकने के बाद भी "लोकलहोस्ट UNIX सॉकेट के माध्यम से" का जवाब देता रहता है।



  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 (और PHP) के साथ उपलब्धता खोज रहे हैं?

  2. समर्थन सर्वर पक्ष पीडीओ के साथ बयान तैयार?

  3. Mysql + php जैसे विशेष पात्रों के साथ '(एपोस्ट्रोफ) और (उद्धरण चिह्न)

  4. MySQL तालिका में रैंक अपडेट करें

  5. MySQL में पंक्तियों की गिनती तेज करना