Minimalteck.fr
Accueil du site > Dév. Web > Singleton PDO

Singleton PDO

vendredi 31 octobre 2008, par Minimalteck

 La classe singleton :

<?php
class DatabaseConnection {
 
        public static function get() {
            static $db = null;
            if ( $db == null ) {
                    $db = new DatabaseConnection();
            }
            return $db;
        }

        private $_handle = null;
       
        private function __construct() {
                $this->engine = 'mysql';
                $this->host = 'localhost';
                $this->database = 'nom_base';
                $this->user = 'user';
                $this->pass = 'user_password';
                $dns = $this->engine.':dbname='.$this->database.";host=".$this->host;
                try {
                        $this->_handle = new PDO( $dns, $this->user, $this->pass );
                        $this->_handle->query("SET NAMES utf8");//FOR USING UTF-8
                        $this->_handle->query("SET CHARACTER SET 'utf8'");//FOR USING UTF-8
                return true;
                } catch (PDOException $e){
                        print 'Erreur : '.$e->getMessage().'<br>';
                        die();
                }
        }
         
        public function handle() {
                return $this->_handle;
        }
}
?>

 Son utilisation :

<?php
$dbx = DatabaseConnection::get()->handle();
$results=$dbx->query('SELECT * FROM bidule');
$results->setFetchMode(PDO::FETCH_OBJ); // retour d'un objet std
while( $row = $resultats->fetch() ) {
       echo 'Utilisateur : '.$row->id.'<br />'; // on affiche l'id des entrées de la table bidule
}
$results->closeCursor(); // on ferme le curseur des résultats : nécessaire pour pouvoir réutiliser la connexion $dbx pour exécuter une nouvelle requête...
?>
SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0