• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Database Class probleem

  • AeroXbird
  • 25 juli 2010 om 11:56
  • AeroXbird
    Lua/PHP scriptorrrrrr xD
    Berichten
    119
    • 25 juli 2010 om 11:56
    • #1

    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:

    PHP
    // Connect to MySQL
    $link = Connection::NewConnection( $sql_config['hostname'], $sql_config['database'], $sql_config['username'], $sql_config['password'] );
    if(!$link)
    {
    $message  = '' . mysql_error() . '<br><br>Please inform a system administrator!';
    echo <<<ENDHTML
    <body bgcolor="#000000">
    
    
    
    
    <center><table cellspacing='0' width='700' height='1%' style='border: 1px solid #444444; margin-bottom: 4px'  cellpadding='2' >
    						<tr>
    					<td height='35' width='700' background='' bgcolor='#333333' style='border-bottom: 1px solid #444444; text-align: left; padding-left:25px; vertical-align: middle;'>
    				    <b><font color='#999999'>A MySQL has error occured!</b>
    			</td>
    			<TR>
    			        <td bgcolor='#222222'  width='700' style='border-bottom:1px solid #444444;' height='25'>
    
    
    				    <font color='#999999'>The website has failed to connect to the mysql server!<BR>
    					Error: $message </font>
    			</td>
    			
    			
    			</TR>
    
    
    
    
    		    </table></center>
    ENDHTML;
    exit();
    }
    Toon Meer

    Database Class:

    PHP
    class Connection
          {
            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
    
    
            /** NewConnection Method
             * This method establishes a new connection to the database. */
            public function NewConnection($server, $database, $username, $password)
            {
                // Assign variables
                global $db_connection, $db_server, $db_database, $db_username, $db_password;
                $db_server = $server;
                $db_database = $database;
                $db_username = $username;
                $db_password = $password;
    
    
                // Attempt connection
                try
                {
                    // Create connection to MYSQL database
                    // Fourth true parameter will allow for multiple connections to be made
                    $db_connection = mysql_connect ($server, $username, $password, true);
                    mysql_select_db ($database);
                    if (!$db_connection)
                    {
                        throw new Exception('MySQL Connection Database Error: ' . mysql_error());
                    }
                    else
                    {
                        $CONNECTED = true;
                    }
                }
                catch (Exception $e)
                {
                    echo $e->getMessage();
                }
            }
    }
    Toon Meer


    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:

  • MrWasted
    Beginner
    Berichten
    28
    • 25 juli 2010 om 12:30
    • #2

    Hoe werd het opgelost, telkens uw antwoord plaatsen om zo meerdere topics en vragen te verkomen.

  • AeroXbird
    Lua/PHP scriptorrrrrr xD
    Berichten
    119
    • 25 juli 2010 om 12:48
    • #3

    Het probleem lag dat ik een $link deed voor de connectie class.
    ik heb het foutmeldingen in het class systeem geintergreerd.

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 25 juli 2010 om 13:12
    • #4

    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:

    PHP
    try
    {
    // Connect to MySQL
    Connection::NewConnection( $sql_config['hostname'], $sql_config['database'], $sql_config['username'], $sql_config['password'] );
    }
    catch(Exception $e)
    {
    $message  = $e->getMessage();
    echo <<<ENDHTML
    <body bgcolor="#000000">
    
    
    
    
    <center><table cellspacing='0' width='700' height='1%' style='border: 1px solid #444444; margin-bottom: 4px'  cellpadding='2' >
                            <tr>
                        <td height='35' width='700' background='' bgcolor='#333333' style='border-bottom: 1px solid #444444; text-align: left; padding-left:25px; vertical-align: middle;'>
                        <b><font color='#999999'>A MySQL has error occured!</b>
                </td>
                <TR>
                        <td bgcolor='#222222'  width='700' style='border-bottom:1px solid #444444;' height='25'>
    
    
                        <font color='#999999'>The website has failed to connect to the mysql server!<BR>
                        Error: $message<br><br>
    
    
                        Please inform a system administrator!</font>
                </td>
                
                
                </TR>
    
    
    
    
                </table></center>
    ENDHTML;
    exit();
    }
    Toon Meer

    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.

    miauw!

  • AeroXbird
    Lua/PHP scriptorrrrrr xD
    Berichten
    119
    • 25 juli 2010 om 14:48
    • #5

    Op verzoek van darrstar:

    PHP
    <?php
    class Connection
          {
            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
    
    
            /** NewConnection Method
             * This method establishes a new connection to the database. */
            public function NewConnection($server, $database, $username, $password)
            {
                // Assign variables
                global $db_connection, $db_server, $db_database, $db_username, $db_password;
                $db_server = $server;
                $db_database = $database;
                $db_username = $username;
                $db_password = $password;
    
    
                // Attempt connection
                try
                {
                    // Create connection to MYSQL database
                    // Fourth true parameter will allow for multiple connections to be made
                    $db_connection = mysql_connect ($server, $username, $password, true);
                    mysql_select_db ($database);
                    if (!$db_connection)
                    {
                        throw new Exception('MySQL Connection Database Error: ' . mysql_error());
                    }
                    else
                    {
                        $CONNECTED = true;
                    }
                }
                catch (Exception $e)
                {
                    echo $e->getMessage();
                }
            }
    
    
            /** Open Method
            * This method opens the database connection (only call if closed!) */
            public function Open()
            {
                global $db_connection, $db_server, $db_database, $db_username, $db_password, $CONNECTED;
                if (!$CONNECTED)
                {
                    try
                    {
                        $db_connection = mysql_connect ($db_server, $db_username, $db_password);
                        mysql_select_db ($db_database);
                        if (!$db_connection)
                        {
                            throw new Exception('MySQL Connection Database Error: ' . mysql_error());
                        }
                        else
                        {
                            $CONNECTED = true;
                        }
                    }
                    catch (Exception $e)
                    {
                        echo $e->GetMessage();
                    }
                }
                else
                {
                    return "Error: No connection has been established to the database. Cannot open connection.";
                }
            }
    
    
            /** Close Method
             * This method closes the connection to the MySQL Database */
             public function Close()
             {
                global $db_connection, $CONNECTED;
                if ($CONNECTED)
                {
                    mysql_close($db_connection);
                    $CONNECTED = false;
                }
                else
                {
                    return "Error: No connection has been established to the database. Cannot close connection.";
                }
             }
    
    
          }
    ?>
    Toon Meer
  • Darsstar
    Vreemd
    Berichten
    1.173
    • 25 juli 2010 om 16:03
    • #6

    http://www.php.net/manual/en/language.oop5.basic.php
    Lees daar eens iets over $this aub

    Dan kunnen al die lelijke globals weg...

    miauw!

  • AeroXbird
    Lua/PHP scriptorrrrrr xD
    Berichten
    119
    • 27 juli 2010 om 23:30
    • #7

    Ik heb er naar gekeken, maar ik snap dat $this niet helemaal
    en ik vind die examples ook niet bepaald duidelijk daar.

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 27 juli 2010 om 23:50
    • #8

    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:

    PHP
    /** Open Method
            * This method opens the database connection (only call if closed!) */
            public function Open()
            {
                if ($this->CONNECTED)
                    return true;
    
    
                $this->db_connection = mysql_connect ($this->db_server, $this->db_username, $this->db_password);
    
    
                if ($this->db_connection)
                {
                    if (mysql_select_db ($this->db_database))
                    {
                        return $this->CONNECTED = true;
                    }
                }
    
    
                throw new Exception('MySQL Connection Database Error: ' . mysql_error());
            }
    Toon Meer


    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

    miauw!

  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 27 juli 2010 om 23:53
    • #9

    $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 ;)

  • AeroXbird
    Lua/PHP scriptorrrrrr xD
    Berichten
    119
    • 28 juli 2010 om 00:15
    • #10

    Dit heb ik nu:

    PHP
    public $db_connection = null;        // Database connection string
    		public $db_server = null;            // Database server
            public $db_database = null;          // The database being connected to
            public $db_username = null;          // The database username
            public $db_password = null;          // The database password
            public $CONNECTED = false;           // Determines if connection is established
    
    
            /** NewConnection Method
             * This method establishes a new connection to the database. */
            public function NewConnection($server, $database, $username, $password)
            {
                    // Create connection to MYSQL database
                    // Fourth true parameter will allow for multiple connections to be made
                    $this->db_connection = mysql_connect ($this->server, $this->username, $this->password, true);
                    mysql_select_db ($this->database);
                    if ($this->db_connection)
                    {
                         return $this->CONNECTED = true;
                    }
                    else
                    {
                       throw new Exception('MySQL Connection Database Error: ' . mysql_error());
                    }
                }
    Toon Meer


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

  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 28 juli 2010 om 00:19
    • #11
    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 ;)

  • AeroXbird
    Lua/PHP scriptorrrrrr xD
    Berichten
    119
    • 28 juli 2010 om 00:41
    • #12

    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!

  • Spinazie
    Set sail, pirates!
    Berichten
    353
    • 28 juli 2010 om 00:46
    • #13

    Dus je kunt ook de PHP4 gewoontes weg gooien en met PHP5 beginnen? :p

    var $db_connection = null; << Refering to this

    In PHP5 maken we namelijk al gebruik van access levels (public, protected en private)

    http://www.sitemasters.be/tutorials/1/1/…cted_en_Private) :D

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

Participate now!

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

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design