• 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

  • 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
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

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 deel 2

  • Luc
  • 5 november 2011 om 11:44
  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 5 november 2011 om 11:44
    • #1

    Beste leden,

    Maand terug ongeveer was ik begonnen met een database class te schrijven. Nu wil ik weten of deze class een beetje op de goede weg is. Overigens is deze class gebaseerd op een class uit c#.

    Heb hem omgebouwd voor PHP maar weet niet of het zo goed is. Er moet nog documentatie in en error reporting.

    PHP
    class Database
    {
        private $host = 'localhost';
        private $user = '';
        private $password = '';
        private $database = '';
        private $connection = '';
        private $hasConnection = false;
        private $queryResult = '';
    
    
        public function Connect()
        {
            // nieuwe connectie aanmaken als hij nog niet aangemaakt is.
            if($this->hasConnection === false)
            {
                $this->connection = new MySQLi($this->host,$this->user,$this->password,$this->database);
       
                // nette error meegeven als er geen verbinding gemaakt kon worden.
                if(! $this->connection)
                {
                    throw new Exception('Er kon geen verbinding worden gemaakt met de daabase.');
                }
                else
                {
                    // de connectie is aangemaakt en kan nu succesvol gebruikt worden.
                    $this->hasConnection = true;
                }
            }
        }
    
    
        public function Disconnect()
        {
            if($this->hasConnection === true)
    		{
    			mysqli_close($this->connection);
    			$this->hasConnection = false;
    		}
        }
    
    
        public function Delete($sTable, $sWHERE)
        {
            $this->Delete("DELETE FROM ".$sTable" WHERE ".$sWHERE);
        }
    
    
        public function Insert($sInsert)
        {
             $this->Insert($sInsert);
        }
    
    
        public function Select($sSelect)
        {
            $this->Select($sSelect);
        }
    
    
        public function Update($sTable, $sSet, $sWHERE)
        {
           $this->Update("UPDATE ".$sTable." SET ".$sSet." WHERE ".$sWHERE);
        }
    }
    Toon Meer

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Tim
    Enlightened
    Ontvangen Reacties
    77
    Berichten
    3.686
    • 5 november 2011 om 12:02
    • #2

    Enkele dingen,
    Waarom geef je meteen een waarde aan $connection en $queryResult?
    Ik heb nog nooit met MYSQLI gewerkt, maar als daar de verbinding niet bij leuk, krijg je dan geen error?
    Ik neem aan dat je het weet, maar voor de zekerheid. Roep de connect() functie aan in een try/catch.

    Verder zou het leuk zijn dat indien er iets fout gaat bij de query dat je ook de error ziet(of juist niet).

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 5 november 2011 om 12:33
    • #3

    Erg leuk van al die recursie in Database::Insert() en Database::Select()! Verder gaan Database::Delete() en Database::Update() fouten geven.

    Zoals ik de vorige keer al zei: Database::$hasConnection is overbodig.

    Hier een al iets betere Database::Connect():

    PHP
    public function Connect()
        {
            // nieuwe connectie aanmaken als hij nog niet aangemaakt is.
            if($this->connection instanceof MySQLi)
                return;
    
    
            $this->connection = new MySQLi($this->host,$this->user,$this->password,$this->database);
       
            // nette error meegeven als er geen verbinding gemaakt kon worden.
            if($this->connection->connect_error) // Voor PHP 5.2 < 5.2.9 gebruik mysqli_connect_error()
                throw new Database_Exception('Er kon geen verbinding worden gemaakt met de daabase.');
        }
    Toon Meer

    Waar zouden wij die C# class kunnen vinden trouwens?

    miauw!

  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 8 november 2011 om 12:21
    • #4
    PHP
    class Database
    {
        private $host = 'localhost';
        private $user = '';
        private $password = '';
        private $database = '';
        private $connection = '';
        private $queryResult = '';
    
    
        public function Connect()
        {
            // nieuwe connectie aanmaken als hij nog niet aangemaakt is.
            if($this->connection instanceof MySQLi)
                return;
    
    
            $this->connection = new MySQLi($this->host,$this->user,$this->password,$this->database);
       
            // nette error meegeven als er geen verbinding gemaakt kon worden.
            if($this->connection->connect_error) // Voor PHP 5.2 < 5.2.9 gebruik mysqli_connect_error()
                throw new Database_Exception('Er kon geen verbinding worden gemaakt met de database.');
        }
    
    
        public function Disconnect()
        {
    		if($this->connection instanceof MySQLi)
    		{
    			mysqli_close($this->connection);
    		}
        }
    	
    	function num_rows($qury = NULL )
        {
            // als $qury niet NULL is dan proberen uit te voeren
            if( $qury != NULL )
                $this->setQuery($qury);
            
            // rijen die geteld zijn teruggeven
            return $this->getQuery->num_rows;
        }
    
    
        public function setQuery($qury = NULL)
        {
    		if($qury != NULL)
    		{
    			// Qury proberen te maken en getten in de getQuery
    			$this->getQuery = $this->connection->query($qury);
        
    			// error teruggeven als de query ongeldig is!
    			if( !$this->getQuery )
    			{
    				throw new Database_Exception('Helaas de query is niet goedgegaan.');
    			}
    		}
        }
    }
    Toon Meer

    Is deze wat beter? een ding om query's mee uit te voeren en nu ook alvast om resultaten te tellen.

    De c# class heb ik van een klasgenoot gekregen dus is niet te vinden.

    Zou deze opzet zo werken? met $this->connection->query ?

    [offtopic]
    Sorry voor het late reageren heb net een kleine operatie achter de rug.
    [/offtopic]

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • FrankY
    Another one bites the dust.
    Ontvangen Reacties
    3
    Berichten
    598
    • 8 november 2011 om 16:15
    • #5

    Waar defineer jij $this->res?

    Bezig met cms:)

  • Luc
    Software Engineer
    Ontvangen Reacties
    44
    Berichten
    1.986
    • 8 november 2011 om 18:39
    • #6

    Nergens was klein foutje, dat moest getQuery zijn.

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • Tux
    Professional noob
    Berichten
    44
    • 8 november 2011 om 21:11
    • #7

    Connect private maken en die aanroepen in een constructor. Disconnect private maken en die aanroepen in een destructor.
    Zo had ik het tenminste gedaan waarschijnlijk als er geen reden was om het niet te doen.

    Op die manier bespaar je verderop in je code regels.

    Misschien is het ook handig om een nieuw object aan te maken met Database_Result of zoiets. Dan hoef je niet te klungelen met getQuery en setQuery en dat soort dingen, maar dan haal je de resultaten uit een object.

    Hallo, mijn naam is Aart Appel, ik ben 6 jaartjes oud en ik kan al lezen en schrijven. Ik heb me aangemeld op Criminalspoint omdat ik graag meer wil leren over .NET, Java en MongoDB. Ook ben ik op zoek naar een fulltime baan als professioneel zeikstraal.

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

Gebruikers die dit topic bekijken

  • 1 Gasten
  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