Versio

Mysqli class met static

Overzicht Reageren

L B

L B

05/07/2010 19:28:27
Quote Anchor link
Hallo,

Ik ben begonnen aan een mysqli class. Ik wil deze static maken zodat ik hem zo kan oproepen:

class::functie();

Nu is mijn vraag, heb ik dit zo goed gedaan en is de manier van de mysqli goed?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
class DBCMI
{
    private $db_host        = "localhost";
    private    $db_name        = "";
    private    $db_user        = "";
    private $db_pass        = "";
    private $debug            = false;
    private $debug_adres    = "mail@mail.com";
    private    $headers;
    private $connection;    
    
    private static function reportBug($error)
    {

        echo "<p>Er heeft zich een probleem voor gedaan, dit is automatisch gemeld aan de webmaster</p>";
        mail(self::$debug_adres, "MySQL error op " . $_SERVER["HTTP_HOST"], "Op de pagina " . $_SERVER["REQUEST_URI"] . " is de volgende fout opgetreden:<br/><br/>" . $error, self::$headers);
    }

    
    public static function connect()
    {

        self::$headers .= "MIME-Version: 1.0\r\n";
        self::$headers .= "Content-type: text/html;charset=ISO-8859-9\r\n";
        self::$headers .= "From: BUG Report " . $_SERVER["HTTP_HOST"];
        
        new
mysqli(self::$db_host, self::$db_user, self::$db_pass, self::$db_name);
        
        if(mysqli_connect_errno())
        {

            if(self::$debug)
            {

                die(self::reportBug("De volgende database kan niet geselecteerd worden: " . self::$db_name));
            }

            else
            {
                die("De volgende database kan niet geselecteerd worden: " . self::$db_name);
            }
        }
    }
}

?>
 
PHP hulp

PHP hulp

25/05/2012 07:03:16
Gesponsorde koppelingen:
 
P Lekensteyn

P Lekensteyn

05/07/2010 19:51:39
Quote Anchor link
Nou, MySQLi is ook een klasse die je kunt extenden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
Class DBding extends MySQLi{
 //hier moeten nog variablen maar ik ben lui.
 protected function __construct($host, $user, $pass, $db){
  parent::__construct($host, $user, $pass, $db);
 }

 public static function connect(){
  if(!isset(self::$instance)){
   self::$instance = new self(self::$db_host, self::$db_user, self::$db_pass, self::$db_name);
   if(mysqli_connect_errno()){//oude versies zijn bugged met MySQLi->connect_error
    //jouw debug code

   }
  }
 }
}

?>


Ik heb zelf de voorkeur van MySQLi zo houden als het is (niet static) en en globale variable maken.
Eventueel kun je een factory maken
 
L B

L B

05/07/2010 20:06:19
Quote Anchor link
Het is zo dat ik al een mysql class heb. Maar deze wil ik ombouwen naar mysqli, en als ik alle documenten moet aanpassen die de oude class gebruiken, dan ben ik heeeel lang bezig. Daarom wil ik er zelf eentje schrijven met de zelfde functies.
 



Overzicht Reageren

Get Adobe Flash player