0

在一个类中,我有一个建立数据库连接的方法以及 3 个不同a的方法。bc

每个a, b,c方法都需要一个数据库连接,所以我正在检查 mysql 是否没有连接 - 现在连接,否则什么都不做。这是我的代码:

class myClass {
    public $DBisConnected = false;

    function db_connect () {
        $this->db = new mysqli("localhost","user","pass","db_name") or die("no conn");

        $this->DBisConnected = true;
    }

    function a () {
        if(!$this->DBisConnected) {
            $this->db_connect();
        }

        // here process for a
    }

    function b () {
        if(!$this->DBisConnected) {
            $this->db_connect();
        }

        // here process for b   
    }

    function c () {
        if(!$this->DBisConnected) {
            $this->db_connect();
        }

        // here process for c
    }
}

我的问题是:有没有办法检查数据库连接是否已经存在?如果是这样,我将如何在我的代码中使用它们?

4

3 回答 3

0

您可以将连接代码放在类构造函数中,如下所示:

function __construct () {
     $this->db_connect();
}

然后,只有在连接正常时才应将值 true 存储在私有 bool 变量中(通过检查连接函数返回值)。

于 2012-12-01T09:03:56.497 回答
0
class myClass {


    public $DBisConnected = false;

    function db_connect () {
        if(!$this->DBisConnected) {
         $this->db = new mysqli("localhost","user","pass","db_name") or die("no conn");
         $this->DBisConnected = true;
        }
    }



    function a () {
           $this->db_connect();


        // here process for a
    }

    function b () {
            $this->db_connect();

        // here process for b   
    }

    function c () {
            $this->db_connect();

        // here process for c
    }

}

但是,最好只从构造函数调用一次 db_connect() 而不是每次都从每个函数调用

于 2012-12-01T09:04:15.720 回答
0

您可以使用isset()来检查是否$this->db variable已设置。但是你的方式也是合适的。但只需检查$this-db variable然后为$this->DBisConnected.

于 2012-12-01T09:04:52.133 回答