我正在尝试创建一个Parent类,我可以使用该类进行扩展以调用不同的数据库。我不确定我是否做对了。
我的父类是这样的:
class Db {
private $db_host;
private $db_usr;
private $db_pwd;
private $db_name;
private $db_port;
public function __construct ($db_host, $db_usr, $db_pwd, $db_name, $db_port) {
$this->connect($db_host, $db_usr, $db_pwd, $db_name, $db_port);
}
protected function connect ($db_host, $db_usr, $db_pwd, $db_name, $db_port) {
$this->mysqli = new mysqli($this->db_host, $this->db_usr, $this->db_pwd, $this->db_name, $this->db_port);
if ($this->mysqli->connect_error) {
die("Connection to DB failed: " . $this->mysqli->connect_error);
} else {
$this->connected = true;
return $this->mysqli;
}
}
public function disconnect() {
if ($this->connected === true) {
if ($this->mysqli->close()) {
$this->connected = false;
return true;
} else {
return false;
}
}
}
public function __destruct () {
$this->disconnect();
}
}
对于我拥有的每个数据库,我都会有一个从Db扩展来的子类,并带有我的凭据。
所以类似:
class Test-Database extends Db {
protected function __construct () {
$this->db_host = "123.123.123.123";
$this->db_usr = "myusername";
$this->db_pwd = "mypassword";
$this->db_name = "my_test_database";
$this->db_port = 3306;
Db::__construct();
}
}
在开始时,我只有一个班级,但我认为拥有一个家长班级然后可以重用是一个好主意,但我认为我做的不对。应该在父级中还是仅在子级中声明变量?我以为该类可以在构造函数中连接,但是看起来它迫使我传递那些看起来不太好的变量。]>
实现父/子类系统以处理PHP中的mysql连接的最简单方法是什么?
我正在尝试创建一个Parent类,我可以使用该类进行扩展以调用不同的数据库。我不确定我是否正确。我的父类是这样的:class Db {private $ ...
确定,因此以下内容似乎可以正常工作: