Hallo,
Ik ben op dit moment bezig met het testen van de mogelijkheden die classess mij bieden binnen php5.
Ik stuit echter op een probleem.
Voor het sql gebeuren heb ik een klasse gemaakt die de connectie maakt en waarmee ik query's uit kan voeren. Query's uitvoeren kan ik ook gewoon met mysql functie's doen, maar als ik dit binnen 1 klasse doe heb ik de mogelijkheid om error's goed te kunnen opvangen en analyseren.
Verder heb ik een klasse session die een aantal controles uit voert.
Wat het verder doet is niet van belang op dit moment.
Mijn probleem is alsvolgt.
Ik heb de volgende bestanden:
class_session.php
class_database.php
pagina.php
In pagina.php doe ik het volgende:
Ik include beide classes in pagina.php
In pagina.php maak ik dan een nieuw object aan voor de database (bijv: $objDatabase).
Mijn intensie was om dit object overal te gebruiken (1 connectie is tenslotte voldoende).
Echter, als ik dit object nu in de klasse session wil gebruiken gaat het mis. Dit resulteert in de volgende code:
Klein schetsje van pagina.php:
Bij de actie CheckInDB(); in het object session connect de klasse session via het object database die aangemaakt is in de pagina ($objDatabase).
Dit is dus niet mogelijk. Is hier een oplossing voor te noemen?
Het is een van de eerste keren dat ik echt met klassess ga werken, ik weet dus niet of dit uberhaubt mogelijk is. Een nieuwe database connectie aanmaken in het object sessie is natuurlijk mogelijk, maar dit lijkt me niet echt efficient?
Ik ben op dit moment bezig met het testen van de mogelijkheden die classess mij bieden binnen php5.
Ik stuit echter op een probleem.
Voor het sql gebeuren heb ik een klasse gemaakt die de connectie maakt en waarmee ik query's uit kan voeren. Query's uitvoeren kan ik ook gewoon met mysql functie's doen, maar als ik dit binnen 1 klasse doe heb ik de mogelijkheid om error's goed te kunnen opvangen en analyseren.
Verder heb ik een klasse session die een aantal controles uit voert.
Wat het verder doet is niet van belang op dit moment.
Mijn probleem is alsvolgt.
Ik heb de volgende bestanden:
class_session.php
class_database.php
pagina.php
In pagina.php doe ik het volgende:
Ik include beide classes in pagina.php
In pagina.php maak ik dan een nieuw object aan voor de database (bijv: $objDatabase).
Mijn intensie was om dit object overal te gebruiken (1 connectie is tenslotte voldoende).
Echter, als ik dit object nu in de klasse session wil gebruiken gaat het mis. Dit resulteert in de volgende code:
code:
1
| Call to a member function RunQuery() on a non-object |
Klein schetsje van pagina.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| <?PHP include("class_session.php"); include("class_database.php"); $objDatabase = new database(); $objDatabase->Connect(); $objSession = new session(); $objSession->CheckInDB(); ?> |
Bij de actie CheckInDB(); in het object session connect de klasse session via het object database die aangemaakt is in de pagina ($objDatabase).
Dit is dus niet mogelijk. Is hier een oplossing voor te noemen?
Het is een van de eerste keren dat ik echt met klassess ga werken, ik weet dus niet of dit uberhaubt mogelijk is. Een nieuwe database connectie aanmaken in het object sessie is natuurlijk mogelijk, maar dit lijkt me niet echt efficient?
...