0

クラスには、データベース接続を確立するためのメソッドと、3 つの異なるa, b,cメソッドがあります。

すべて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

isset()が設定されているかどうかを確認するために使用できます$this->db variable。しかし、あなたのやり方も適切です。ただし、チェック$this-db variableして値を に代入するだけ$this->DBisConnectedです。

于 2012-12-01T09:04:52.133 に答える
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() を 1 回だけ呼び出す方がよいでしょう。

于 2012-12-01T09:04:15.720 に答える