我已經從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。
謝謝你的詳細解答。我接受你的。 –