2011-02-12 4 views
0

Quel est le moyen le plus rapide et le plus simple de rendre une connexion de base de données disponible dans une classe pour que toutes les fonctions publiques de la classe puissent y accéder et comment l'appeler dans une fonction? Enregistrez le handle de connexion en tant que variable de classe.connexion db en classe PHP

+0

utiliser une variable? –

+0

Vous ne pouvez pas utiliser MySQLi? –

+0

@Kevin tout pilote de base de données l'exigent. Allez la figure –

Répondre

2

class Test 
{ 
    public $dbh; 

    public function connect($host,$username,$password,$dbname) 
    { 
      $this->dbh = mysql_connect($host,$username,$password); //Of course, you'd want to do some actual error checking. Also, you can have a separate function for selecting the DB if you need to use multiple databases 
      mysql_select_db($dbname,$this->dbh); //You use $this->variable to refer to the connection handle 
    } 

    public function query($sql) 
    { 
     return mysql_query($sql,$this->dbh); 
    } 
} 
+0

merci beaucoup! –

0

Ou vous pouvez utiliser la méthode __construct() de la classe qui est appelée automatiquement chaque fois qu'un nouvel objet est initialisé ..

class MySQLDatabase { 
    private $connection; 
    function __construct() { 
     $this->open_connection(); 
    } 
    public function open_connection() { 
     $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS); 
     if (!$this->connection) { 
      die("Database connection failed: " . mysql_error()); 
     } else { 
      $db_select = mysql_select_db(DB_NAME, $this->connection); 
      if (!$db_select) { 
       die("Database selection failed: " . mysql_error()); 
      } 
     } 
    } 
    public function query($sql) { 
     $result = mysql_query($sql, $this->connection); 
     return $result; 
    } 
}