2012-12-01 79 views
0

在一個類中,我有一個建立數據庫連接的方法,還有3個不同的方法a,b,c方法。檢查mysql連接

abc方法,需要一個數據庫連接,所以我檢查如果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 
    } 
} 

我的問題是:是否有方法檢查數據庫連接是否已經存在?如果是這樣,我將如何在我的代碼中使用它們?

+2

在構造函數中聲明連接,所以您不必一次又一次地調用它。 – Vamsi

回答

0

你可以放置在類的構造你的連接代碼:

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

那麼你應該在專用布爾變量存儲true值僅在連接變細(通過檢查連接函數的返回值)。

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 
    } 

} 

然而它甚至會更好,只是從每個功能

0

調用db_connect()從構造函數一次,每次不,您可以使用isset()來檢查$this->db variable設置與否。但你的方式也是合適的。但只需檢查$this-db variable,然後爲$this->DBisConnected指定一個值。