我已经从mysqli
类中扩展了我的数据库模型,但我不希望它每次重新连接时都会实例化一个新模型,因为它确实会减慢整个脚本的速度。如何检查PHP中是否存在活动的MySQLi连接?
我有一个Database
类从mysqli
延伸,并且其它模型类从Database
延伸。
我Database
类看起来是这样的:
class Database extends mysqli {
// some properties ...
public function __construct() {
parent::__construct(MySQL_HOST, MySQL_USER, MySQL_PASS, MySQL_DATABASE);
$this->set_charset(MySQL_CHARACTER_SET);
// initializing stuff ..
}
// some other methods...
}
样本模型类是这样的:
class User extends Database {
protected $table = "users";
public function __construct($id = null) {
// Calling the parent constructor.
parent::__construct();
if($id) {
// This is the current logged-in user.
// Importing all session data into this object.
$this->data->import($this->session->all());
// ^^ This imports all the user related session data into this object
// i don't think it's relevant but i'll leave it here just in case.
}
}
我的问题是,
我如何检查有一个活动的
mysqli
连接?我该如何防止它重新连接并使用活动连接呢?
我可以遵循哪些其他方法?
我应该迁移到
PDO
,我必须吗? 为什么?
P.S:迁移到PDO将是大量的返工,因为我已经建了的事情库MySQLi。
谢谢你的详细解答。我接受你的。 –