Sommaire
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...
?>