Advertisement
barbuslex

Db.php

Apr 28th, 2025
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.14 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Db;
  4.  
  5. // On "importe" PDO
  6. use PDO;
  7. use PDOException;
  8.  
  9. class Db extends PDO
  10. {
  11.     // Instance unique de la classe
  12.     private static $instance;
  13.  
  14.     // Informations de connexion
  15.     private const DBHOST = 'localhost';
  16.     private const DBUSER = 'root';
  17.     private const DBPASS = '';
  18.     private const DBNAME = 'demo_poo';
  19.  
  20.     private function __construct()
  21.     {
  22.         // DSN de connexion
  23.         $_dsn = 'mysql:dbname='. self::DBNAME . ';host=' . self::DBHOST;
  24.  
  25.         // On appelle le constructeur de la classe PDO
  26.         try{
  27.             parent::__construct($_dsn, self::DBUSER, self::DBPASS);
  28.  
  29.             $this->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');
  30.             $this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
  31.             $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  32.         }catch(PDOException $e){
  33.             die($e->getMessage());
  34.         }
  35.     }
  36.  
  37.  
  38.     public static function getInstance():self
  39.     {
  40.         if(self::$instance === null){
  41.             self::$instance = new self();
  42.         }
  43.         return self::$instance;
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement