0

我无法在 php.ini 中返回对象。它只发生在我的数据库对象和所有其他工作正常,这里的代码:

class D {
private static $instance;
private $connected=false,$db,$mf;

public static function getInstance() {
    if (!isset(self::$instance)) {
        self::$instance = new self();
    }
    return self::$instance;
}


public function connect() {
    $mf = MF::getInstance();
    $this->r = R::getInstance();
    if($this->connected == false) {
        $this->db = new PDO('mysql:host='.$this->r->mysql_host.';dbname='.$this->r->mysql_database, $this->r->mysql_username, $this->r->mysql_password);
        if($this->db == true) {
            $this->connected = true;
            $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
        }else{
            $this->mf->report('Unable to connect to database',2);
        }
    }else{
        $this->mf->report('Connection already made.');
    }
}

public function query($sql) {
    try {
        $q = $this->db->query($sql);
    }
    catch(PDOException $e) { 
        trigger_error('<br>Regel: '.$e->getLine().'<br>
            Bestand: '.$e->getFile().'<br>
            Foutmelding: '.$e->getMessage().'<br>SQL: '.$sql,E_USER_ERROR); 
        die();
    } 
    return $q;
}
}

现在,当我使用 D::getInstance(); 它没有返回应有的对象。只要我执行 query() 函数,它就会给我“致命错误:在非对象上调用成员函数 query()”错误。它只发生在 db 中,其他对象(如 R 和 MF)在使用 getInstance() 时工作​​正常;他们都使用相同的代码。

(是的,我首先做 $d = D::getInstance(); 然后 $d->connect(); 在我将它加载到另一个对象之前)

4

0 回答 0