I have extended my Database Models from the mysqli
class, but i don't want it to reconnect everytime i instantiate a new model, because it really slows down the whole script.
I have a Database
class extends from mysqli
, and other model classes extending from Database
.
My Database
class looks like this :
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...
}
A sample model class would look like this :
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.
}
}
My question is,
How can i check if there is an active
mysqli
connection?How can i prevent it from reconnecting and use the active connection instead?
What other approaches can i follow?
Should i migrate to
PDO
, do i have to? Why?
P.S.: Migrating to PDO will be a lot of rework, as i've already built things over mysqli.