[OOP] Mysql resource benaderen in class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jaws

Jaws

30/10/2007 12:38:00
Quote Anchor link
Hey,

Ik ben bezig met een stukje OOP. Ben daar vrij nieuw in en kom even niet verder met een database connectie binnen mijn class.

Omdat de hoster nog PHP4 draait heb ik de code ook daaraan aangepast.

Ik het nu volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class MenuKaart {
    var
$connectie;

    function
__construct() {
        $this->connectie = mysql_connect('localhost','user','password');
        mysql_select_db('database', $this->connectie);
    }
    
    function
toon_kaart () {
        $result = mysql_query('SELECT * FROM menu_hoofdcategorie', $this->connectie);
        while ($line = mysql_fetch_array($result)) {
            echo $line['h_id'];
        }
    }
}


$MenuKaart = new MenuKaart();
$MenuKaart->toon_kaart();
?>


Probleem is dat ik de connectie bij het aanmaken van de class tot stand wil brengen en dan gewoon kan benaderen in iedere method. Bovenstaande code geeft volgende error:

"Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in..."

Wanneer ik echter de 2 regels van de constructor in de toon_kaart method plaats dan werkt het wel.
 
PHP hulp

PHP hulp

26/12/2024 11:07:42
 
Frank -

Frank -

30/10/2007 12:40:00
Quote Anchor link
offtopic:
Quote:
Omdat de hoster nog PHP4 draait heb ik de code ook daaraan aangepast.
Dan kun je binnenkort opnieuw beginnen, versie 4 wordt over enkele dagen niet meer ondersteund.

Tip: Zoek een hostingprovider die wel tijdig onderhoud pleegt en laat je nooit meer beperken door providers die uitblinken in gebrekkig onderhoud.
 
Hylke

Hylke

30/10/2007 12:48:00
Quote Anchor link
Hmm, waarschijnlijk is het probleem dat PHP4 niet '__construct()' aanroept bij het maken van een object. PHP4 zoekt naar de functie MenuKaart(), en die bestaat niet. __construct() wordt dus nooit uitgevoerd. Waarschijnlijk moet je dus __construct() veranderen in MenuKaart()
 
Frank -

Frank -

30/10/2007 12:51:00
Quote Anchor link
Daar zeg je wat, dat is inderdaad een probleem. Dat is ook de reden waarom je niet meer met versie 4 wilt werken, die is zeer beperkt met de OOP-mogelijkheden.
 
Jaws

Jaws

30/10/2007 12:54:00
Quote Anchor link
@pgFrank:
Ben het roerend met je eens. Het is echter voor een ander dat ik dit scriptje maak. De site is gehost bij transip, ik kan niet begrijpen dat ze niet updaten of dit moet zeer binnenkort gebeuren.

@Hylke:
Idd! Je hebt gelijk met die __construct. Probleem is dat ik begonnen ben met OOP te leren in PHP5, en dan sluipen deze fouten erin.

Bedankt!
 
Nicoow Unknown

Nicoow Unknown

30/10/2007 12:56:00
Quote Anchor link
heb je je host al een mailtje gestuurd?
Want ze zouden het gewoon moeten doen. (upgraden naar php5)
Ze zullen zelf toch ook wel snappen dat dat beter is voor iedereen,
Het draagt toch weer een beetje bij aan de verbetering van de wereld
 
Frank -

Frank -

30/10/2007 12:59:00
Quote Anchor link
Zie transip.nl, die hebben toch echt versie 5.2 op (een deel van?) hun servers draaien. Zoek dus even uit wat er aan de hand is, het lijkt erop dat je niet meer met de ouwe zooi van versie 4 hoeft te werken.
 
Jaws

Jaws

30/10/2007 13:00:00
Quote Anchor link
Ja k ga een mailtje sturen. Zie nou ook dat transip wel php5.2 host. Maar dan bij nieuwe paketten. Waarschijnlijk is deze nog op een oudere server of zo en moet ik dat even aangeven.

Edit: we dachten hetzelfde frank :)
Gewijzigd op 01/01/1970 01:00:00 door Jaws
 
Robert Deiman

Robert Deiman

30/10/2007 13:13:00
Quote Anchor link
@Jaws

Ik denk dat ze nog de PHP4 versie naast de PHP 5 versie hebben draaien. Je kan dan door een bestand .php5 mee te geven als PHP5 draaien, of standaard door een .htacces in de root dir neer te zetten, ik zal ff kijken of ik nog terug kan vinden.

Gevonden, iets sneller dan ik dacht :) Bij mijn hoster is dat zo, geloof dat het algemeen is voor apache.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SetEnv DEFAULT_PHP_VERSION 5
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.