我曾经在每个需要连接数据库的类中扩展 Db 连接类。我认为这是最常见的方式。但是,通过这种方式,您可以在扩展 db 连接类的每个类实例中打开和关闭一个新连接。最近,我认为我可以创建一个 pdo 对象并将其传递给类的构造函数。因此,每个需要访问数据库的类实例都使用相同的连接。它有效,但我不确定这是否是一种有效的方法。另外,我有一个名为 closeCon 的函数,我在脚本末尾调用它,以便通过 null 和 unset 关闭连接。我也想知道你对此的看法。先感谢您 : )
方法 1:新类扩展 dbConnection 类。
class Db {
public $pdo;
public function __construct($usr, $pwd, $db) {
$this->pdo = new PDO("mysql:host=localhost;dbname=".$db.";charset=utf8", $usr, $pwd);
}
}
class Users extends Db{
public function __construct(){
parent::__construct($usr, $pwd, $db);
}
}
方法 2:通过将 PDO dbConnection 变量传递给新类的构造函数来连接到 db。
class Db {
public $pdo;
public function __construct($usr, $pwd, $db) {
$this->pdo = new PDO("mysql:host=localhost;dbname=".$db.";charset=utf8", $usr, $pwd);
}
public function closeCon(){
$this->pdo = null;
unset($this->pdo);
}
}
class Users {
protected $pdo;
public function __construct($con){
$this->pdo = $con;
}
}
$db = new Db($usr, $pwd, $db);
$posts = new Users($db->pdo);
$db->closeCon();