[PHP] Database class in andere class

Gestart doorJenner11 reacties22 weergaven

12 berichten · pagina 1 van 1

Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo,

Mijn vraag aan degene die gebruik maken van classes in PHP hoe zij hun Database class invoegen in een andere class. Ik zit namelijk al een jaar te prutsen met een goede oplossing.

Dus je hebt bijvoorbeeld een class genaamd "Users" en je wilt alle gebruikers uit je database halen.
0
Erik

Lid

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
extends ?
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik bedoel meer dat je in bijvoorbeeld class "User" met een query alle gebruikers uit je database haalt wink
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Gewoon die class aanroepen? emo
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nielsie schreef:
Gewoon die class aanroepen? emo
Kuch,

In elke functie dit doen is ook niet echt lekker he:

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/class"]class[/URL] Users [COLOR= #007700]{[/COLOR]

[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] getUsers[COLOR= #007700]() {[/COLOR]

[COLOR= #0000BB]$db[/COLOR] [COLOR= #007700]= new[/COLOR] MySQLi[COLOR= #007700]([/COLOR][COLOR= #DD0000]localhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]test[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]test[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]test[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$db[/COLOR][COLOR= #007700]->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]SELECT * FROM Gebruikers[/COLOR][COLOR= #007700]);

}

}[/COLOR]
?>


Dan heb je onnodig veel connecties opstaan en nogal omslachtig en niet echt snel te type he yummie
0
Erik

Lid

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maak een config.php aan, zet daar die new MySQLi(); in en global hem in je functie.
Klaar.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Erik schreef:
Maak een config.php aan, zet daar die new MySQLi(); in en global hem in je functie.
Fix je uitlijning emo!
Klaar.

Je miste wat emo
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dat schreef ik net even snel in het tekstvakje en dan kan je niet tabben. Eigenlijk zoek ik een net wat geavanceerder idee. Dus dat het makkelijk is om ook andere classes kunnen opslaan wink Het liefste in een en class smile
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Je kan een private variable maken maar dan heeft elke class weer een nieuwe verbinding
0
Berichten
3.314
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je moet je db gewoon aanmaken in een config en verder je db als aparte class oproepen (wellicht static met DB::query)

Het doel van OOP is niet geavanceerd zijn maar doen was t beste is, en alle dingen zo maken dat ze vaker te gebruiken zijn. Natuurlijk kun je ze geheel geavanceerd en elkaar steken maar om ze vaker te kunnen gebruiken zul je ze los moeten hebben van elkaar.
0
Jenner

Lid · Topicstarter

Berichten
1.544
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik ben er eens even goed voor gaan zitten en heb een class gemaakt met het volgende principe:

[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]//Class toevoegen[/COLOR]
IC[COLOR= #007700]::[/COLOR]addClass[COLOR= #007700]([/COLOR][COLOR= #DD0000]db[/COLOR][COLOR= #007700], new[/COLOR] MySQLi[COLOR= #007700]([/COLOR][COLOR= #DD0000]localhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]test[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]test[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]test[/COLOR][COLOR= #007700]));[/COLOR]

[COLOR= #FF8000]//Class opvragen[/COLOR]
IC[COLOR= #007700]:[/COLOR]SMILEYYYYYYYYYYYBEGIN[COLOR= #007700]:[/COLOR]db[COLOR= #007700]()->[/COLOR]query[COLOR= #007700]([/COLOR][COLOR= #DD0000]SELECT * FROM Gebruikers[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #FF8000]//Andere functies (Bovenste 2 ga ik waarschijnlijk gewoon weglaten)[/COLOR]
IC[COLOR= #007700]::[/COLOR]copyClass[COLOR= #007700]([/COLOR][COLOR= #DD0000]db[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]db2[/COLOR][COLOR= #007700]);[/COLOR]
IC[COLOR= #007700]::[/COLOR]moveClass[COLOR= #007700]([/COLOR][COLOR= #DD0000]db2[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]newplace[/COLOR][COLOR= #007700]);[/COLOR]
IC[COLOR= #007700]:[/COLOR]SMILEYYYYYYYYYYYBEGIN[COLOR= #007700]:[/COLOR]delClass[COLOR= #007700]([/COLOR][COLOR= #DD0000]newplace[/COLOR][COLOR= #007700]);[/COLOR]
IC[COLOR= #007700]::[/COLOR]editClass[COLOR= #007700]([/COLOR][COLOR= #DD0000]db[/COLOR][COLOR= #007700], new[/COLOR] My_Mysql[COLOR= #007700]);[/COLOR]

IC[COLOR= #007700]::[/COLOR]classes[COLOR= #007700]();[/COLOR] [COLOR= #FF8000]//Return all the classes[/COLOR]
?>
Kyron schreef:
Je moet je db gewoon aanmaken in een config en verder je db als aparte class oproepen (wellicht static met DB::query)

Het doel van OOP is niet geavanceerd zijn maar doen was t beste is, en alle dingen zo maken dat ze vaker te gebruiken zijn. Natuurlijk kun je ze geheel geavanceerd en elkaar steken maar om ze vaker te kunnen gebruiken zul je ze los moeten hebben van elkaar.
Ben ik het absoluut mee eens wink Dus daarom is een functie db() aanmaken niet echt OOP. Het hoeft niet echt geavanceerd, maar hierboven kan je goed gebruiken in bijna alle systemen.
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik gebruik een static database class zodat ik in alle andere classes gewoon Database::query() aan kan roepen. Werkt prima voor mij smile
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren