2012-12-01 81 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指定一个值。