toegang via klasse

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zackat

zackat

23/11/2005 12:12:00
Quote Anchor link
Ben een beetje aan het knutselen met classes. (mijn eerste)
Heb er nu een voor toegang en verbinding met database. Met heel veel commentaar er tussen. (anders snap ik er zelf niks meer van ;-) )

Deze probeer ik te testen door verkeerde $host, $user, $dbnaam etc in te vullen om te kijken of ik een foutmelding krijg of dat de verbinding gelukt is. Wat ik ook invul, ik krijg geen foutmelding.

Iemand die me kan uitleggen wat ik hier fout doe?
thanks

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
dit is begin test toegang<br>

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
//--D E  K L A S S E  T O E G A N G ---------------------------------------------
class toegang {

//-- De variabelen nodig voor toegang velenen tot MySQL
//-- en die bij de klasse horen

var $user="xxx";            //gebruikersnaam    
var $password="xxx";        //wachtwoord
var $host="localhost";        //naam van computer
var $dbnaam="xxx";            //naam van database

//-- Declaratie overige variabelen

var $db_verbinding=false;    //resultaat van verbinding
var $sql_resultaat=false;    //resultaat opgegeven SQL opdracht



//--V E R B I N D I N G -------------------------------------------------------
    //-- Bij het aanroepen van een klasse
    //-- wordt een functie met hetzelfde naam
    //-- in de klasse direct uitgevoerd (constructor).
    //-- functie toegang wordt dus direkt uitgevoerd
    //-- die de functie verbinden aanroept voor
    //-- het totstand brengen van de verbinding
    //-- met de database.
    
    //--Constructor

    function toegang() {
        //--functie verbinden wordt in het begin uitgevoerd bij
        //--aanroep van deze klasse
        //--daarbij vormt "$this->" een sleutelwoord.
        //--sleutelwoord geeft daarbij toegang tot
        //--alle opgenomen variabelen en functies.

        $this->verbinden();
    }

    
    //--Als er nog geen verbinding is met de database
    //--deze aanmaken en als standaard opnemen.

    function verbinden() {
        if($this->$db_verbinding=false){    //--bij het verbinden moet gekeken worden
                                            //--of er al een verbinding is
                                            //--de eerste keer is dat er nog niet omdat
                                            //--$db_verbinding de waarde false heeft.
                                            //--met @ worden webserver fouten onderdrukt
                                            //--om fouten te zien, maken we een functie foutmelding

            $this->$db_verbinding=@mysql_connect($this->$host, $this->$user, $this->$password);
            
            //--controleer of de verbinding gelukt is
            if(empty($this->$db_verbinding)){
                //--roep foutfunctie op met opgegeven melding
                $this->foutmelding("Er is een fout opgetreden bij het maken van een verbinding");
            }


            //--als er geen foutmelding is dan
            //--is de verbinding met de database gelukt
            //--of de verbinding met de database is al aanwezig
            //--nu controleren we of het mogelijk is om
            //--de opgegeven database te gaan gebruiken

            $db_selecteren=@mysql_select_db($this->$dbnaam, $this->$db_verbinding);
            
            //--controleer of het selecteren van de database gelukt is
            if(empty($db_selecteren)){
                //--selecteren niet gelukt, geef foutmelding
                $this->foutmelding("Het selecteren van de database is mislukt ");
            }

                //--selecteren is gelukt, kan de functie verbinden verlaten
                return $this->$db_verbinding;
            }

    }


    //--F O U T M E L D I N G -----------------------------------------------------
    //--Als er een fout is opgetreden, geef hiervan een melding
    //--en sluit deze script en html tags af.

    function foutmelding($foutbericht){
        echo $foutbericht. " <br>";
        echo mysql_error()." <br/>";
        echo mysql_errno();
        echo '</body></html>';
        exit;
    }

}

?>
Gewijzigd op 23/11/2005 12:59:00 door Zackat
 
PHP hulp

PHP hulp

15/03/2025 03:45:21
 
Jelmer -

Jelmer -

23/11/2005 12:44:00
Quote Anchor link
if(empty($db_selecteren)){ hier moet je gewoon empty weglaten. $db_selecteren is niet leeg, maar bevat boonlean TRUE of FALSE. Dus gewoon if($db_selecteren){ is beter.

Daarbij, waneer je al geen verbinding hebt kunnen maken met de db, dan moet je niet ook nog eens proberen een database te selecteren.
 
Zackat

zackat

23/11/2005 12:58:00
Quote Anchor link
if empty($db_selecteren) moet ik wel nagaan omdat de verbinding hier:
if(empty($this->$db_verbinding)){

wel of niet gemaakt wordt, als dat niet gemaakt kan worden dan springt het script naar de foutmelding. Omdat daar een exit zit, zal de mogelijkheid tot db_selecteren niet eens worden uitgevoerd.

ik zie ook dat ik exit; in mijn foutafhandeling vergeten ben. wordt nu aangepast in script en ook hier.
Gewijzigd op 23/11/2005 13:02:00 door zackat
 
Zackat

zackat

23/11/2005 13:11:00
Quote Anchor link
ik heb het gevonden, dit is wat het moet zijn:
if($this->db_verbinding==false)
ipv
if($this->$db_verbinding=false)

ok, opgelost, maar wil er ook iets meer van opsteken dus hierbij een andere vraag.

als ik de $ teken bij db_verbinding laat zitten krijg ik deze melding:
Notice: Undefined variable: db_verbinding
Notice: Undefined property
snap ik niet omdat ik het wel declareer met $

als ik mijn declaratie laat staan met $ en in de functie de $ verwijder, dan doet tie h't

kan iemand me vertellen waarom dat zo is?

Thanks
 
Zackat

zackat

23/11/2005 13:24:00
Quote Anchor link
nb:
alle $ moeten uit de functies verwijderd worden voor de variabelen die met var $ gedeclareerd zijn.

ik snap niet waarom, als iemand dat kan uitleggen. Graag.
 



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.