Ik ben bezig met een simpele profielen site, puur om php (OOP) beter door te krijgen.
Ik heb advies nodig. Wanneer een gebruiker bijvoorbeeld zijn email adres aanpast, kan ik dat doen door een in de setEmailaddress een nieuwe db connectie te maken, dus
<?public function setEmailaddress($emailaddress){
$link = new QueryClass();
$link->query('UPDATE blatieblaat...');
$this->emailaddress = $emailaddress;
}?>
Wat ook kan is dat ik een eerder gemaakte queryclass in de constructor gebruik, die in de gehele classe te gebruiken is.
Ik zou ook wanneer iemand zijn gegevens wijzigt, een query kunnen opstellen en het gehele account updaten.
ik gebruik nu mysqli,
misschien toch het beste ja.
De queryclass maakt bij het aanmaken een verbinding met de DB,
maar aangezien je bij PHP de constructor niet kunt overloaden, wordt de queryclass gemaakt in een functie :(
Wil een gebruiker kunnen halen uit de db en kunnen maken bij het maken van een gebruiker.
De queryclass in dan volgens mij niet in de gehele classe te gebruiken, kan dit anders?
$handle = @mysqli_connect( ) i.p.v. new Mysql(en de rest)
$GLOBALS['handle'] = $handle;
dan maak je een overkopelende class
<?
class Database extends Mysqli {
public function execute($query) {
return mysqli_query(self::getHandle(),$query);
}
public function getHandle() { # Deze functie zodat als je het nog een x wiltr bijwerken je niet alles hoeft na te lopen
return $GLOBALS['handle']
}
}
?>
Ik ben persoonlijk tegen globals, maar miss kun je er wat mee
Graag meer meningen (ik weet niet zeker of dit helemaal flex is)
EDIT: of zo ...
<?
class Database extends Mysqli {
function __construct($host,$user,$pass,$db) {
$handle = mysqli_connect($host,$user,$pass,$db);
$GLOBALS['handle'] = $handle;
}
public function execute($query) {
return mysqli_query(self::getHandle(),$query);
}
public function getHandle() { # Deze functie zodat als je het nog een x wiltr bijwerken je niet alles hoeft na te lopen
return $GLOBALS['handle']
}
}
?>
en dan ergens bovenin;
<?
new Database('localhost','root','xxx','database');
?>