Дочерний класс объекта при обращении к родительскому классу создает экземпляр подключения к базе данных. Проблема в том что дочерних классов несколько, и при каждом своем вызове они подключаются к базе данных.
Дочерний класс:
class Categories extends DataBase{
public function __construct() {
parent::__construct("categories");
}
}
Класс базы данных:
class DataBase {
private $query;
private $table_name;
private $mysqli;
public function __construct($table_name) {
$table = Valid::Table($table_name);
$table ? $this->table_name = strtolower("`".Config::DB_PREFIX.$table_name."`") : exit();
$this->mysqli = @new mysqli("p:".Config::DB_HOST, Config::DB_USER, Config::DB_PASSWORD, Config::DB_NAME);
if ($this->mysqli->connect_errno) exit("Ошибка соединения с базой данных");
$this->mysqli->query("SET lc_time_names = 'ru_RU'");
$this->mysqli->query("SET NAMES 'utf8'");
}
protected function query($query) {
return $this->mysqli->query($query);
}
Вызов:
$categories = new Categories();
$subcategories = new SubCategories();
$categories->getCategories();
$subcategories->getCategories();
Лог mySQL:
596 Connect root@localhost on nk
596 Query SET lc_time_names = 'ru_RU'
596 Query SET NAMES 'utf8'
597 Connect root@localhost on nk
597 Query SET lc_time_names = 'ru_RU'
597 Query SET NAMES 'utf8'
596 Query SELECT * FROM `nkrep_categories`
597 Query SELECT * FROM `nkrep_subcategories`