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