ShrineDesigns
10-04-2004, 08:32 PM
The extended or derived class has all variables and functions of the base class (this is called 'inheritance' despite the fact that nobody died) and what you add in the extended definition.i have several classes that use one class as a base class that holds basic mysql functions, why is sql_alias->connection not availiable in other sub classes, and how could i resolve this issue?
base class:class sql_alias
{
var $connection;
function affected()
{
return @mysql_affected_rows($this->connection);
}
function connect()
{
$this->connection = @mysql_pconnect(SQL_SERVER, SQL_USERNAME, SQL_PASSWORD);
return @mysql_select_db(SQL_DATABASE, $this->connection);
}
function error()
{
return @mysql_error($this->connection);
}
function fetch($result, $type = SQL_NUM)
{
return @mysql_fetch_array($result, $type);
}
function found()
{
$result = @mysql_query("SELECT FOUND_ROWS()", $this->connection);
return @mysql_result($result, 0);
}
function free($result)
{
return @mysql_free_result($result);
}
function num_fields($result)
{
return @mysql_num_fields($result);
}
function num_rows($result)
{
return @mysql_num_rows($result);
}
function query($query)
{
return @mysql_query($query, $this->connection);
}
function result($result, $row = 0, $field = NULL)
{
return @mysql_result($result, $row, $field);
}
}
$sql = new sql_alias;
a sub class:class category extends sql_alias
{
var $categories;
function category()
{
$category = array();
$result = parent::query("SELECT * FROM `categories`");
while($row = parent::fetch($result))
{
$category[] = $row;
}
parent::free($result);
$this->categories = $category;
}
}
$category = new category;
base class:class sql_alias
{
var $connection;
function affected()
{
return @mysql_affected_rows($this->connection);
}
function connect()
{
$this->connection = @mysql_pconnect(SQL_SERVER, SQL_USERNAME, SQL_PASSWORD);
return @mysql_select_db(SQL_DATABASE, $this->connection);
}
function error()
{
return @mysql_error($this->connection);
}
function fetch($result, $type = SQL_NUM)
{
return @mysql_fetch_array($result, $type);
}
function found()
{
$result = @mysql_query("SELECT FOUND_ROWS()", $this->connection);
return @mysql_result($result, 0);
}
function free($result)
{
return @mysql_free_result($result);
}
function num_fields($result)
{
return @mysql_num_fields($result);
}
function num_rows($result)
{
return @mysql_num_rows($result);
}
function query($query)
{
return @mysql_query($query, $this->connection);
}
function result($result, $row = 0, $field = NULL)
{
return @mysql_result($result, $row, $field);
}
}
$sql = new sql_alias;
a sub class:class category extends sql_alias
{
var $categories;
function category()
{
$category = array();
$result = parent::query("SELECT * FROM `categories`");
while($row = parent::fetch($result))
{
$category[] = $row;
}
parent::free($result);
$this->categories = $category;
}
}
$category = new category;