login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Functions in classes

Offline ikki007 - 12/08/2007 19:03 (laatste wijziging 12/08/2007 19:12)
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Hey,

Ik ben vandaag bezig met classes enzo, beetje leren.
En nu wil ik een functie gebruik in die class die gewoon in php gebakken zit, namelijk mysql_query();.
Dus had ik dit dingetje gemaakt:

  1. <?php
  2. class connection
  3. {
  4. function __construct()
  5. {
  6. try
  7. {
  8. if(!mysql_connect("localhost","root","xxxx"))
  9. {
  10. throw new Exception('Kon geen verbinding met de database maken');
  11. }
  12.  
  13. if(!mysql_select_db("ikki007"))
  14. {
  15. throw new Exception('Kon geen database selecteren');
  16. }
  17. }
  18. catch(Exception $error)
  19. {
  20. die($error->getMessage());
  21. }
  22.  
  23. }
  24. }
  25. ?>


En wat krijg ik nu:

Fatal error: Call to undefined function mysql_connect() in E:\Server\Apache2\htdocs\connection.php on line 8

Hoe kan ik dit oplossen?


Groet,
Jarno

EDIT: Zucht, hij werkt helemaal nergens meer.. moet aan php 5.2.3 liggen.. het is sinds die upgrade en de rest werkt wel

3 antwoorden

Gesponsorde links
Offline Ultimatum - 12/08/2007 19:22
Avatar van Ultimatum PHP expert Kijk eens in je phpinfo. Is de module mysql niet uitgeschakeld ofzo?

Geen idee of het bestaat maar kijk zoek daar eens na 
Offline ikki007 - 12/08/2007 19:28 (laatste wijziging 12/08/2007 19:33)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Nja der is iets mis met me extensions ook..
In me phpinfo staat ook niks over me GD library terwijl ik die extension toch echt GOED heb geinstalleerd..

EDIT: In alle configs, zowel van php en apache en mysql staat dat php.ini in \php bevindt, en wat zegt phpinfo()...
Dat die in \Windows bevindt  
Even me php.ini gekopieerd en het is opgelost  

Ga verder ook geen moeite doen in wel config dat nou staat  
Offline Gerard - 12/08/2007 23:43
Avatar van Gerard Ouwe rakker Paar kleine opmerkingen die ik je even mee wil geven over het werken met classes. Het zijn gewoon tips/hints.

Exceptions
Het werken met exceptions biedt je een hoop flexibiliteit. Je kan meldingen 'throwen' en op die manier ook opvangen. Hoe jij het nu echter gebruikt heeft het geen zin.

De essentie van een Exception, in mijn ogen, is om deze op te gooien en op een hoger niveau op te vangen. Wat jij nu doet staat gelijk aan:
  1. <?php
  2. if (!mysql_connect()) {
  3. die('');
  4. }


Wat je dus beter kan doen is gewoon die exceptions throwen op het moment dat je iets tegenkomt en niet catchen. Daarna kan je in de code die het object aanmaakt en aanstuurt eventuele exceptions catchen en daarop reageren.

Extends & Coding Standards
Wat je hier eigenlijk aan het maken bent is een Database class. Om precies te zijn een MySQL Database class. Om goed gebruik te maken van het OOP model van PHP kun je je beter even inlezen op PHP.net en de verschillende tutorials op sitemasters en andere communities.

Wat betreft de naam van je class, probeer altijd de naam te laten beginnen met een hoofdletter. Zo zit het namelijk over het algemeen bij veel van de gebruikte codingstandards. Enkele goede voorbeelden zijn dus:
- Database
- MySQL_Database
- FileUpload

Het is maar net welke coding standard je kiest (bv Zend, PEAR, ...) wat bepaald hoe alles genoemd dient te worden.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s