У меня есть класс базы данных:Расширение класса базы данных
<?php
class dbConnect
{
var $strHost = "";
var $strDatabase = "";
var $strUser = "";
var $strPassword = "";
var $intLinkID = 0;
var $intQueryID = 0;
var $arrRecord = array();
var $intRow;
var $intErrno = 0;
var $strError = "";
function dbConnect()
{
$this->Connect();
}
function dbHalt($strError)
{
$objError = new errorHandle();
$objError->reportError("Database error: $strError", false);
$this->intErrno = mysql_errno($this->intLinkID);
$this->strError = mysql_error($this->intLinkID);
$strError = sprintf("MySQL Error: %s (%s)", $this->intErrno, $this->strError);
$objError->reportError($strError, true);
}
function Connect()
{
if (0 == $this->intLinkID) {
$this->intLinkID = mysql_connect($this->strHost, $this->strUser, $this->strPassword);
if (!mysql_select_db($this->strDatabase, $this->intLinkID)) {
$this->dbHalt("cannot use database " . $this->strDatabase);
}
}
if (!$this->intLinkID) {
$this->dbHalt("Database connection failed");
}
}
}
class dbMain extends dbConnect
{
// Database connection settings.
// Dev server.
var $strHost = 'db_host_here';
var $strUser = 'db_User_here';
var $strPassword = 'db_password_here';
var $strDatabase = 'db_name_here';
}
Это отлично работает при вызове $objDB = new dbMain();
Но то, что я хочу, чтобы динамически устанавливать детали базы данных в другом классе (для мастер-CMS) например:
$objDB = new dbMain($user, $pass, $dbname, $dbhost);
Вы должны объявить для модификатора доступа private вместо var для ясности. Ключевое слово var больше не требуется. Он будет работать в PHP5, но повысит предупреждение E_STRICT в PHP5 до версии 5.3, в связи с чем он устарел. – coolkid