Php 无法通过其他类连接到db

Php 无法通过其他类连接到db,php,mysql,oop,Php,Mysql,Oop,我有一个我想不出来的问题。我有一个类数据库,如果我直接使用它,我会定期连接到数据库。我有另一个类类别,我想调用一个数据库对象。问题是,如果我调用$db->connect in categories,则无法工作。我试着在分类中直接调用mysql\u connect,效果很好 为什么我不能使用$db->connect用户'user'@'0.0.0.0'的访问被拒绝,使用密码:YES 我在类数据库中的代码是: public function connect($new_link=false){

我有一个我想不出来的问题。我有一个类数据库,如果我直接使用它,我会定期连接到数据库。我有另一个类类别,我想调用一个数据库对象。问题是,如果我调用$db->connect in categories,则无法工作。我试着在分类中直接调用mysql\u connect,效果很好

为什么我不能使用$db->connect用户'user'@'0.0.0.0'的访问被拒绝,使用密码:YES

我在类数据库中的代码是:

public function connect($new_link=false){
    $this->link_id = @mysql_connect($this->server,$this->user,$this->pass,$new_link);

    echo "<br/>link_id = ".$this->link_id;
    if (!$this->link_id){//open failed
        $this->oops("Could not connect to server: <b>$this->server</b>.");
        }
        else{
            echo "Connected to server <br/>";            
        }

    if(!@mysql_select_db($this->database, $this->link_id)){//no database
        $this->oops("Could not open database: <b>$this->database</b>.");
        }
        else{
            echo "Database opened <br/>";            
        }

    // unset the data so it can't be dumped
    $this->server='';
    $this->user='';
    $this->pass='';
    $this->database='';
}#-#connect()
数据库::获取代码

public static function obtain($server=null, $user=null, $pass=null, $database=null){
    if (!self::$instance){ 
        self::$instance = new Database($server, $user, $pass, $database); 
    } 

    return self::$instance; 
}#-#obtain()

我做错了什么,我看不见吗?

嗯,错误消息是用户'user'@'0.0.0'的访问被拒绝
这意味着当您用$db=Database::get实例化类时;您不设置服务器、用户、通行证和数据库的值。可能类数据库实现了一个单例模式,而方法get只返回实例,而没有设置任何属性。

如果您取消设置数据库连接dataserver,user,…,则为其他调用再次设置。另外,您是否介意输出数据库::获取代码?关于获取,您是对的。问题是分类外的数据库代码工作正常……它连接到服务器……嗯,它工作可能是因为您调用了一个设置用户、密码、数据库和服务器的方法。但是作为一个单例,意味着将提供相同的实例,直到脚本完成运行,并且我看到您将这些值设置为after connect。现在我看到您提供了用于获取的代码,您应该有类似$db=Database::获取$server,$user,$pass,$Database;
public static function obtain($server=null, $user=null, $pass=null, $database=null){
    if (!self::$instance){ 
        self::$instance = new Database($server, $user, $pass, $database); 
    } 

    return self::$instance; 
}#-#obtain()