php的Pdo扩展实现类似mysql_ping的方法

在php里Pdo是没有mysql_ping和mysqli_ping函数的,可以使用以下方法来代替它

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/

或者使用以下方法(目前本人在用)

    /**
     * 检查连接是否可用
     * @param  Link $dbconn 数据库连接
     * @return Boolean
     */
    function ping() {
        try {
            $ret = $this->getAttribute(constant("PDO::ATTR_SERVER_INFO"));
            if ($ret === null) {
                return false;
            }

        } catch (\PDOException $e) {
            if(strpos($e->getMessage(), 'MySQL server has gone away')!==false){
                echo PHP_EOL . $e->getMessage() . PHP_EOL;
                return false;
            }
        }
        return true;
    }

40 thoughts on “php的Pdo扩展实现类似mysql_ping的方法

  1. Pingback: Home Health Care Services in Omaha Nebraska

  2. Pingback: สินเชื่อ ชัยภูมิ

  3. Pingback: ardinagreco.com

  4. Pingback: quanto custa transportar um veiculo de um estado para outro

  5. Pingback: Dybala

  6. Pingback: p1851#https://ruszajwpodroz.pl/forum/rozne-f7/samochod-t97-s40.html#p1851

  7. Pingback: MyWeb

  8. Pingback: custom model airplane decals

  9. Pingback: jaguar qq

  10. Pingback: buy cbd products

  11. Pingback: 바카라사이트

  12. Pingback: Freelance WordPress Developer London

  13. Pingback: istanbul escort

  14. Pingback: porn

  15. Pingback: replica patek philippe swiss watches

  16. Pingback: 카지노사이트

  17. Pingback: บริษัท ทิป ท็อป เอ็นจิเนียริ่ง จำกัด

  18. Pingback: best university in uganda

  19. Pingback: https://domowystroj.pl/forum/wystroj-wnetrz-f4/alvare-pl-opinie-t1688.html#p9508

  20. Pingback: satta king

  21. Pingback: Dental Implants Cost First Class Dental Care

  22. Pingback: https://przedszkolelidzbark.pl/

  23. Pingback: 바카라 사이트 홍보

  24. Pingback: auto generated contents

  25. Pingback: pkv games

  26. Pingback: https://poradniczek.edu.pl/

  27. Pingback: oral testosterone steroids for sale

  28. Pingback: seo service

  29. Pingback: Buy Vyvanse Online

  30. Pingback: books by corey z

  31. Pingback: garage floor coating

  32. Pingback: asigo system review

  33. Pingback: discount viagra no rx

  34. Pingback: mysiding.info

  35. Pingback: DNS Checker

  36. Pingback: 출장서비스

  37. Pingback: huong dan dang ky 12bet

  38. Pingback: ctfo cbd oil

  39. Pingback: 메이저놀이터

  40. Pingback: sildenafil citrate 100mg coupons cvs

Comments are closed.