• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  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
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  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
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  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
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Syntax 14 oktober 2026 om 16:04
  • Maffia Hotel: een browsergame waarin je van lobbygast naar spil van het hotel groeit

    Luc 13 oktober 2026 om 21:31
  • Crime Club volledig herschreven vanaf nul

    frio 13 oktober 2026 om 16:52
  • Herkent deze Notion-structuurscan echte problemen?

    FreelanceAP 6 oktober 2026 om 16:48
  • 🚀 WE ZOEKEN TESTERS! 🚀

    Servertjee 3 oktober 2026 om 10:56
  • Luchtvaartsoftware: Hoe technologie de moderne luchtvaart verandert

    saggy2829 30 september 2026 om 19:31
  • Hoe gebruiken jullie WhatsApp voor marketing en klantopvolging?

    aiqanobzfsej5 29 september 2026 om 12:55
  • [PROJECT] Gamekeuring.nl - Hét onafhankelijke keuringsplatform voor maffiagames & RPG's!

    frio 22 september 2026 om 16:40

Marktplaats

  • [TE KOOP] Likeboost24.nl: complete SMM-webshop met eigen merk, volautomatische levering en betalen op de eigen pagina

    frio 14 oktober 2026 om 15:06
  • Te koop: TuinKlussen.be, een kant-en-klaar platform voor tuinklussen in Vlaanderen en Brussel

    frio 13 oktober 2026 om 21:08
  • Te koop: Port Father, afgewerkt online maffiaspel in PHP/MySQL, klaar voor de Play Store

    frio 11 oktober 2026 om 14:02

Database class deel 2

  • Luc
  • 5 november 2011 om 11:44
  • Luc
    Software Engineer
    Berichten
    1.988
    • 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);
        }
    }
    Meer tonen

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

  • Gast, wil je besparen op je domeinnamen? (ad)
  • Tim
    Expert
    Berichten
    3.685
    • 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.');
        }
    Meer tonen

    Waar zouden wij die C# class kunnen vinden trouwens?

    miauw!

  • Luc
    Software Engineer
    Berichten
    1.988
    • 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.');
    			}
    		}
        }
    }
    Meer tonen

    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.
    Berichten
    598
    • 8 november 2011 om 16:15
    • #5

    Waar defineer jij $this->res?

    Bezig met cms:)

  • Luc
    Software Engineer
    Berichten
    1.988
    • 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.

Registratie

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

Nu registreren Aanmelden

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. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design