Classe de connection à une base de donées

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Classe de connection à une base de donées

par Berzemus » 12 sept. 2008, 09:39

personnellement, en ce qui concerne les paramètres de connexion, je ne les mets pas dans une classe. Soit par l'intermédiaire de constructeurs, soit par l'utilisation de globales; ça rend la classe plus utilisable dans d'autres projets.

par phoeniix07 » 12 sept. 2008, 07:40

Ca me parait pas mal,

le __destruct appelant le disconnect à mon avis est inutile mais bon maintenant que c'est fait !

Classe de connection à une base de donées

par nightkid83 » 12 sept. 2008, 05:04

Salut tout le monde, je viens de créer une classe pour me connecter à une base de données MySQL, sachant que je ne suis qu'un novice dans la programmation orienté objet, j'aimerai avoir votre avis deçu (ce que je pourrais ajouter comme enlever... etc). Merci

<?php

class DatabaseConnection
{
    private static $_instance = null;

    private $_host     = 'localhost';
    private $_dbname   = 'nightkid';
    private $_user     = 'root';
    private $_password = '';
    private $_handle   = null;

    private function __construct()
    {
        $this->connect();
    }

    public function __destruct()
    {
        $this->disconnect();
    }

    public function __clone()
    {
        try {
            throw new Exception('Clone is not allowed');
        } catch (Exception $e) {
            die('Caught exception : ' . $e->getMessage());
        }
    }

    private function connect()
    {
        try {
            $this->_handle = new PDO("mysql:host=$this->_host;dbname=$this->_dbname", $this->_user, $this->_password);
            $this->_handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            // echo 'Connection established and database "' . $this->_dbname . '" selected.';
        } catch (PDOException $e) {
            die('Connection failed or database cannot be selected : ' . $e->getMessage());
        }
    }
    
    private function disconnect()
    {
        if ($this->_handle !== null) {
            $this->_handle = null;
            // echo 'Connection closed.';
        }
    }

    public static function getInstance()
    {
        if (is_null(self::$_instance)) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    public function getHandle()
    {
        return $this->_handle;
    }
}