Allen,

ik heb een Class Env met een property $database.
In de constructor van deze class maak ik een New Database object welke ik in de $database property stop.

Binnen de class Env kan ik dmv $this->database->query($sql) en query uitvoeren. Dat gaat dus prima.

Maar in een derde Class Section wil ik graag deze $database class van het Env object ook gebruiken om queries uit te kunnen voeren.

Nu krijg ik daar een fout op dat er geen verbinding met de database kan worden gemaakt, terwijl deze er al wel is: binnen het Env object.

Heeft er iemand een suggestie?

// FILES:
// Env class
<?php
class Env {

// Create the variable for the database connection
public $database;

public function __construct() {

// Create a new database object
$this->database = new Database();
}
}
?>

// Database class
<?php
class Database {

private $hostname = "*", $username="*", $password = "*";

/**
* Connect to the database server and select the database
*/
public function __construct()
{
// Try to connect to the database-server
if ($this->link = mysql_connect($this->hostname, $this->username, $this->password))
{
// Connection to the database-server was succesfull

// Connect to the database
if (mysql_select_db($this->database, $this->link))
{
// Connected to the database
} else {
// Connection to database failed
print "Unable to select database.";
exit();
}

} else {
// Connection to database-server failed
print "Unable to connect to the database.";
exit();
}
}
}
?>

// Section class
<?php
class Section {

public function __construct()
{
$sql = "SELECT * FROM table;";

// En hier komt dan de fout vandaan:
/*
* Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'apache'@'localhost' (using password: NO) on <file> <line>
*/
$result = $environment->database->query($sql);
}
}
?>

Thanks...
En wat zit er in de variabele $environment in de constructor van de Section class??? Deze wordt niet als parameter meegegeven, en niet gedefinieerd in de constructor...
$environment is een instance/Object van Env.
Ik geef nu het Env object mee als parameter aan de section class, en dat werkt prima!

Ik had ergens gehoopt dat het ook op een andere manier mogelijk zou zijn.
(dus deze zonder als parameter mee te geven, maar dan zal je ook alles static moeten maken.)

thnx anyway.

Reageren