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.

Wat is jullie advies?
Alvast bedankt!!

//edit foutje in code
1 kwerie om de hele account bij te werken, het is anders teveel.

je kunt dan beter een public function update maken


<?
class Gebruiker {
  public function update() {
   // update query
  }

}
?>


die queryclass maakt toch niet elke keer een databaseverbinding ? (dat zou niet netjes zijn )

als je nog geen goede class voor je database hebt, zou je mysqli kunnen gebruiken, zie hiervoor http://nl.php.net/mysqli
( wel mysql 5 nodig )
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?
je zou eenmailg ergens kunnen zeggen

$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');
?>



en dan waar je het ook nodig hebt

Database::execute("select * from tabel");

Reageren