• 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 30 december 2025 om 22:29
  • Developer Gezocht

    K.Rens 30 december 2025 om 12:32
  • Op zoek naar de legends

    Jeffrey.Hoekman 9 december 2025 om 09:41
  • [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 28 december 2025 om 21:20
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Mysql connect class

  • YVMdesign
  • 27 februari 2010 om 00:27
  • YVMdesign
    Intermediate
    Berichten
    357
    • 27 februari 2010 om 00:27
    • #1

    Ik heb een script veranderd en wat uitgebreid tot dit gemaakt.

    Wie kan mij zeggen wat ik er nog aan kan veranderen.

    Connect class

    PHP
    class Connect
    {
    	public function connect($host, $user, $pass ,$db)
    	{
    		$this->link = @mysql_connect($host, $user, $pass);
    		if(!$this->link)
    		{
    	        echo mysql_error();
    	        die;
    		}
    		
    		if (!@mysql_select_db($db, $this->link))
    		{
    	        echo mysql_error();
    	        die;
    		}
    	}
    	
    	public function query($query)
    	{		
    		$this->connect($this->host, $this->user, $this->pass, $this->db);
    		
    		$result = mysql_query($query, $this->link);
    		if(!$result) {
    			echo mysql_error($this->link);
    			die;
    		}
    		
    		return $result;
    	}
    	
    	public function fetch($query, $type)
    	{
    		if ($type == "assoc")
    		{
    			return mysql_fetch_assoc($sql);
    		}
    		elseif ($type == "object")
    		{
    			return mysql_fetch_object($sql);
    		}
    	}
    }
    Toon Meer

    Alles is welkom (ook negatief)

    Mvg.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • CrimeXL
    Student
    Berichten
    68
    • 27 februari 2010 om 00:30
    • #2

    MySQLi?

  • YVMdesign
    Intermediate
    Berichten
    357
    • 27 februari 2010 om 00:30
    • #3

    Ik wil bij MySQL blijven.

    Wil nog niet de overstap maken naar MySQLi.

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 27 februari 2010 om 11:04
    • #4

    Waarom?
    MySQLi is alleen maar een verbeterde set van functies die meer kan dan de mysql_* functies.
    Ook kan je met de MySQLi class werken als je dat fijner vind.

    Maar dat terzijde.
    1) De naam van je class is een beetje onduidelijk, MySQL zou een betere naam zijn.
    2) je echoëd dingen binnen de class, gebruik exceptions.
    3) ik zie drie keer die; staan, gebruik exceptions.
    4) werk met een PHP 5 constructor, niet met een PHP 4 constructor (__construct() ipv naamvandeclass() *)
    5) geen errors onderdrukken.
    6) defineer de protected property "link" in je class.
    7) geef $host, $user, $pass de standaard waarde van NULL en zet $db helemaal vooraan*
    8) laat de query() method bij select queries een MySQL_Result object returnen**
    9) werk bij de fetch() method met TRUE en FALSE ipv een string,
    als je dan TRUE (===) voor mysql_fetch_object() gebruikt, een string voor mysql_fetch_object() met de tweede parameter gebruikt, en dan de rest voor mysql_fetch_assoc() gebruikt heb je altijd wel iets wat gereturned word. (en een coole feature)

    *

    PHP
    public function __construct($db, $host = NULL, $user = NULL, $pass = NULL)


    **
    Geef hoe dan ook de ruwe SQL aan beide constructors mee.

    PHP
    return new MySQL_Result($result, $query);


    En dan kun je de de fetch() method verplaatsen naar de MySQL_Result class en daar interfaces gebruiken zodat je niet alleen met een while/for loop door de results kan loopen, maar ook met een foreach loop =]

    miauw!

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 27 februari 2010 om 11:05
    • #5

    Tip:

    PHP
    public function fetch($query, $type) 
        { 
            if ($type == "assoc") 
            { 
                return mysql_fetch_assoc($sql); 
            } 
            elseif ($type == "object") 
            { 
                return mysql_fetch_object($sql); 
            } 
        }
    Toon Meer


    Je doet hier een if en elseif!
    Maar als je assoc vaker gebruikt waarom doe je het dan niet op volgende manier:

    PHP
    public function fetch($query, $type = 'assoc') 
        { 
            if ($type == "object") 
                return mysql_fetch_object($sql); 
            else
                return mysql_fetch_assoc($sql); 
        }

    Je geeft gewoon gelijk standaard type mee zo hoef je niet altijd een type mee te geven ;)

    Verder ga jij last krijgen van db connection!
    Je site gaat langszamer draaien door dat je bij elke query een connection aanroept.
    Credits by Darsstar die had het bij mij ook verholpen!

    Probeer gebruik te maken van een static instance, zodat je gaat tellen of er al verbinding is. Zo ja geen nieuwe verbinding maken en gelijk met de query verder, anders moet hij connectie gaan maken.

    Ook is het zo als je myqsli gebruikt dat je het jezelf nog makkelijker kan maken en dat de class dan nog wat sneller kan worden ook.

    Ik zal voorbeeld geven hoe ik bijv mijn query aan roep:
    // Query maken wanneer er verbinding is met de server en database.
    $query = $this->_connection->query($sQuery);

    Die $this->_connection is de variabel die ik gebruik om mijn connection code in te zetten, zelfde als wat jij doet als $this->link, alleen heb ik deze connection variabel gebruikt om het vaker te kunnen gebruiken.

    Daar naast kan je een handige try block gebruiken om te kijken of een query bestaat en zo niet kan je een errorhandler erin verwerken zoals trow new exception.

    Ik hoop dat je het nog volgt, en anders moet je het maar zeggen wat je niet snapt.


    Verder zie ik dat darsstar al aantal dingen nu verteld, die ik eigenlijk ook wilde vertellen.
    Bedankt voor de moeite dos!

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

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