Eerst ben ik begonnen een database class te schrijven, waarin ik ongetwijfeld dingen doe die lelijk en vies zijn:
<?php
class MySQL {
protected $location;
protected $username;
protected $password;
protected $dbName;
function ___construct($dbName) {
$this->connectToDB();
$this->selectDB($dbName);
}
function connectToDB ($location = "localhost", $username = "root", $password = "blaat") {
mysql_connect($location, $username, $password) or die(mysql_error());
}
function selectDB ($dbName) {
mysql_select_db($dbName) or die(mysql_error());
}
function doQuery ($query) {
return mysql_query($query);
}
}
?>
Vraag me niet precies waarom ik bovenaan wat protected variabelen maak, vertel me liever of dat correct is of niet ;-).
Verbinding maken met een database is geen probleem, maar dan probeer ik dus een gastenboek class te schrijven waarin ik berichten ophaal uit de database:
<?php
class gastenboek {
function leesBerichtenUitDB () {
$sql = $db->query("SELECT * FROM gastenboek");
$berichten = array();
while($result = mysql_fetch_assoc($sql) {
$berichten[] = $result;
}
return $berichten;
}
}
?>
Nu krijg ik sowieso de volgende foutmelding:
Notice: Undefined variable: db in C:\Program Files\Apache Group\Apache2\htdocs\gastenboekOO\gbClass.php on line 4
Fatal error: Call to a member function query() on a non-object in C:\Program Files\Apache Group\Apache2\htdocs\gastenboekOO\gbClass.php on line 4
Ik wil dus vanuit de ene class een method in de andere class aanroepen, maar dit lukt dus niet. Kan iemand me uitleggen wat ik wél moet doen ?
Is mijn opbouw enigzins verantwoord, of programmeer ik nu alsof ik een gigantisch bord voor m'n kop heb ? Let wel, ik kan redelijk procudereel scripten, maar van OOP heb ik absoluut geen kaas gegeten. Ik ben nu nog jong en fris genoeg om het te leren, en m'n PHP skills mogen wel een nieuwe impuls krijgen. Maar hou het aub begrijpelijk zonder met lastige termen te gaan gooien.