Database Class probleem

  • Hallo criminalspoints.


    Ik heb sinds kort mijn website online gezet, en ik heb daarbij een database class gemaakt, die ik op een rustige ochtend zou installeren.
    Nu blijkt dit moeilijker als gedacht.


    Verbind code:


    Database Class:


    let op, dit is slechts een deel van de database class.


    ik hoop dat het op te lossen is.


    Mvg, AeroXbird
    EDIT: het is opgelost :slotje:

  • Nog een probleem: ik zie nergens "$this".


    Oh, en waarom vang je die exception op?
    Doe dat lekker ergens anders (niet binnen de class).
    Bijvoorbeeld:


    Oh, en globals zijn ook lelijk..


    Doe mij een plezier (en hopelijk daarmee jezelf), en plaats de hele class zodat ik (en andere) je kunnen helpen met het verbeteren er van.

  • Op verzoek van darrstar:

  • ok, laat ik het dan maar proberen uit te leggen:


    Beginnend met een feit:

    PHP
    var $db_connection = null;        // Database connection string
            var $db_server = null;            // Database server
            var $db_database = null;          // The database being connected to
            var $db_username = null;          // The database username
            var $db_password = null;          // The database password
            var $CONNECTED = false;           // Determines if connection is established


    Dat staat er nu voor spek en bonen (en gebruik aub "public" en niet "var", wat nog PHP 4 is)


    Als je wilt dat het er niet voor spek en bonen staat, dan moet je die variabelen gaan gebruiken...
    Maar die variabele spreek je niet aan via $CONNECTED, $db_server etc.
    Maar via $this->CONNECTEC, $this->db_server etc.


    voorbeeldje:


    Geen lelijke global!


    En zo moet je met objecten werken (tenzij je statische variabele gaat maken) wat ik een pro vindt.


    PS. misschien dat ik morgen ochtend nog wat edit, ik ben moe :p

  • $this is gewoon de variabele die het object waarin je werkt zelf bevat. Werkt alleen in object context though. Dat is logisch.


    Als je een methode of een variabele van je class in de class zelf terug wilt roepen (wat heel handig is voor private access), dan kun je $this gebruiken.
    Stel bijvoorbeeld dat je een methode hebt die een object zijn eigenschappen omzet in een array (ik noem maar wat). Dan zou je bijvoorbeeld $this->convertToArray(Exception $caughtshizzle) kunnen aanroepen als die methode bestond in de class waar je $this gebruikt.


    Snap je dit wel?

    Nieuwe reactie samengevoegd met originele reactie op 27.07.10 23:53:40:
    Oh te laat

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

  • Dit heb ik nu:


    maar ik krijg constant een error dat hij niet in object context is.

  • Citaat

    $this is gewoon de variabele die het object waarin je werkt zelf bevat. Werkt alleen in object context though. Dat is logisch.


    Je kunt het best even alle reacties lezen, ook die te laat zijn.
    $this kun je alleen gebruiken als je je class in object context aan het werk zet. Dat komt omdat $this zelf ook een object bevat, en PHP maakt niet automatisch een object voor je aan (gelukkig)

    Totdat Stefan en Koen terug zijn van vakantie ben ik weer actief. Daarna ben ik weer weg ;)

  • Na wat tweaken heb ik het probleem opgelost, het probleem bleek dus de aanroeping van de class te zijn.
    Ik snap nu ook helemaal hoe de object context werkt, dankjewel
    kan een :slotje: op!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!