Mysqli class met static

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

21/01/2020 03:51:25
 
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

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.