2011-05-16 47 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