Является ли обработчик сессии каким-то специализированным типом базы данных?Это , а не , поэтому не используйте наследование ( - это отношение ).Обработчик сеанса использует базу данных , поэтому вы должны использовать композицию ( имеет отношение ):
class Session {
protected $db;
public function __construct(DB $db) {
$this->db = $db;
}
public function write() {
$this->db->query(...);
}
}
$db = new DB(...);
$session = new Session($db);
Кроме того, не используйте функции mysql_*()
.Используйте гораздо более мощный PDO .
Возвращаясь к вашему вопросу ... mysql_connect()
будет выполняться каждый раз, когда вы создаете новый Database
объект.Однако в этом случае Session
является объектом типа Database
, поэтому каждый раз, когда вы пишете new Database()
или new Session()
, вызывается конструктор, поэтому также вызывается mysql_connect()
.
PS.mysql_connect()
функция не будет создавать новое соединение, если указанное соединение уже существует.Проверьте 4-й аргумент этой функции, чтобы узнать больше.