2011-05-16 52 views
2

我的基本問題是我無法從另一個類中訪問類。以下是我已經成立至今:php mysqli class

我的DB類:

class db { 

    public static $mysqli; 
    public function __construct(){} 

    static function con(){ 
     if(!self::$mysqli){ 
      self::$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
     } 
     return self::$mysqli; 
    } 
} 

這工作都很好,很正常,當我只是把它從一個函數像這樣:

function defineSettings(){ 
    if ($query = db::con()->prepare(...my query...)) {  
    $query->execute(); 
    $query->bind_result($1, $2, $3); 
    $query->fetch(); 
    $query->close(); 
    } 

    db::con()->close(); 

} 

然而,我無法從另一個類的方法中訪問這個db-> con()方法。我曾嘗試將它擴展到一個新班級,但也許我做錯了。非常感謝如何使用這個新類的例子!謝謝!

+0

確保您定義' db :: con()'作爲'公共靜態函數'和'公共類數據庫' – fbstj 2011-05-16 18:29:08

+0

一旦這樣做,如何從另一個類中的方法調用它? – 2011-05-16 18:31:57

+0

只要代碼在同一個文件中(或者其他文件中包含'class db'的文件),那麼它應該可以工作。 – fbstj 2011-05-16 18:33:56

回答

1

不是100%肯定,如果我明白你的問題,但下面的類應該告訴你如何能得到從Db類的db對象,然後在另一個函數中使用它

class Example2 { 
    private $db; 

    public function test() { 
     if (!$this->db) { 
      $this->db = db::con(); 
     } 
     //Do your stuff 
    } 

    public function test2() { 
     $this->db->close(); 
    } 
} 
+0

我只是得到一個錯誤:mysqli :: close()[mysqli.close]:無法獲取mysqli在...... – 2011-05-16 18:41:42