Connect met databse functie niet te vinden in klasse

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mitchel

mitchel

11/06/2009 13:58:00
Quote Anchor link
Ik was een beetje aan het oefenen met php en de klasses en ik wil dus dat de connectie in een variable word opgeslagen. Ik weet niet of dit de beste manier is maar zo probeer ik het in iedergeval maar het werkt niet.

Ik krijg de error dat de functie niet vindbaar is (mischien is dit mijn fout maar weet het niet zeker).

Dit is de code die ik hiervoor gebruik:
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
21
22
23
24
25
26
27
<?php
class database {
        
        function
__construct() {
            $this->dbhost = 'xxxx';
            $this->dbname = 'xxxx';
            $this->dbuser = 'xxxx';
            $this->dbpass = 'xxxx';
            $this->dbconn = connect();
        }

        
        public function connect() {
            if (!$con = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass)) {
                trigger_error(mysql_error());
            }

            else {
                if (!$con = mysql_select_db($this->dbname, $con)) {
                    trigger_error(mysql_error());
                }

                else {
                    echo 'Connectie succesvol gemaakt <br />';
                }
            }
        }
            
    }

?>


Ik hoop dat jullie mij kunnen helpen en eventueel mij mijn fouten laten inzien.
 
PHP hulp

PHP hulp

22/11/2024 21:54:04
 
Joren de Wit

Joren de Wit

11/06/2009 14:02:00
Quote Anchor link
Als je het op die manier wilt aanpakken, zal het wel dit moeten zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$this
->dbconn = $this->connect();
?>

Verder echo je normaal gesproken geen gegevens vanuit je klasse en ook is het gebruik van trigger_error() niet de juiste oplossing. Gebruik liever Exceptions als je OO aan het programeren bent.
 
Mitchel

mitchel

11/06/2009 14:03:00
Quote Anchor link
Bedankt voor je reactie ik probeer het even en ik zal meteen naar die exceptions kijken.

edit: het werkt op deze manier bedankt.
Gewijzigd op 01/01/1970 01:00:00 door mitchel
 
Mitchel

mitchel

12/06/2009 11:26:00
Quote Anchor link
Ik bumb deze even zodat ik niet en heel nieuw topic hoef aan te maken.

Ik ga net verder met mijn db klasse maar ik denk dat ik iets fout heb gedaan want bij elke mysql functie die ik wil uitvoeren krijg ik deze error: supplied argument is not a valid MySQL-Link resource.

Kan iemand mij uitleggen wat ik fout gedaan heb want ik ben er nu al even mee bezig en ik ben er nog niet achter gekomen waar de fout precies ligt of wat ik moet aanpassen om deze fout te verhelpen.

Dit werkt al niet :

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
class database {
        
        /**
         * Class __construct()
         * Create variables
         */

    
        function __construct() {
            $this->dbhost = 'xxxx';
            $this->dbname = 'xxxx';
            $this->dbuser = 'xxxx';
            $this->dbpass = 'xxxx';
            $this->dbconn = null;
            $this->connect();
        }

        
        public function connect() {
            if(!$this->dbconn) {
                if (!$this->dbconn = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass)) {
                    trigger_error(mysql_error());
                }
else {
                    if (!$this->dbconn = @mysql_select_db($this->dbname)) {
                        trigger_error(mysql_error());
                    }
                }
            }
        }

        function
__destruct()
        {

            if (mysql_close($this->dbconn)) {
                $this->dbconn = null;
            }
        }
    }

?>
Gewijzigd op 01/01/1970 01:00:00 door mitchel
 
Tamara

Tamara

12/06/2009 11:45:00
Quote Anchor link
ik gok dat het iets te maken heeft met het @

Deze onderdrukt namelijk foutmeldingen.
 
Mitchel

mitchel

12/06/2009 11:49:00
Quote Anchor link
Zonder komt er hetzelfde dus ik betwijfel of het daar aan ligt.
 
Tamara

Tamara

12/06/2009 12:03:00
Quote Anchor link
je hebt trouwens 3x dezelfde voorwaarde, op 3 verschillende plaatsen:

if(!$this->dbconn)


ik denk dat ie daarop vast loopt.
 
Mitchel

mitchel

12/06/2009 12:06:00
Quote Anchor link
Dit is alleen een check of er al connectie is maar die is er niet dus gaat het gewoon verder. Ik denk zelf dat het ergens in het connectie maken zelf zit.


edit: als ik mysql_stat gebruik krijg ik wel gewoon gegevens door dus er is toch een connectie.
edit2: geen flauw idee waarom maar het werkt nu...
Gewijzigd op 01/01/1970 01:00:00 door mitchel
 
Mitchel

mitchel

15/06/2009 12:27:00
Quote Anchor link
Ik wil nu op een valid manier dingen uit de database halen vanuit een andere klasse maar ik weet niet precies hoe.

Even een voorbeeltje: ik wil bij user_exists in users klasse dus kijken of de user is de database bestaat. Ik wil die info dus ophalen via mijn database klasse hoe doe ik dat precies.
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
21
22
<?php
class database {
        
        // Functies hier
        
        public function query($sql) {
            // query uitvoeren
        }

        // Functies daar
        
    }
    
    class user {
        
        public function user_exists() {
            // Bestaat user?
        }
        
        
    }

?>


edit: was vergeten te vermelden dat mijn mysql_close functie niet werkt als ik iets verkrijg in een andere klasse
Gewijzigd op 01/01/1970 01:00:00 door mitchel
 



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.