Advertisement
yesamarcos

Arquivo de conexão para escrita na DB

Apr 29th, 2017
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.64 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Classe de conexão ao banco de dados usando PDO no padrão Singleton.
  4.  * Modo de Usar:
  5.  * require_once './Database.class.php';
  6.  * $db = Database::conexao();
  7.  * E agora use as funções do PDO (prepare, query, exec) em cima da variável $db.
  8.  */
  9. class Database {
  10.     # Variável que guarda a conexão PDO.
  11.    protected static $db;
  12.     # Private construct - garante que a classe só possa ser instanciada internamente.
  13.    private function __construct()
  14.     {
  15.         # Informações sobre o banco de dados:
  16.         $db_host    = "localhost";
  17.         $db_nome    = "classificados";
  18.         $db_usuario = "root";
  19.         $db_senha   = "";
  20.         $db_driver  = "mysql";
  21.  
  22.         try
  23.         {
  24.             # Atribui o objeto PDO à variável $db.
  25.            self::$db = new PDO("$db_driver:host=$db_host; dbname=$db_nome", $db_usuario, $db_senha);
  26.             # Garante que o PDO lance exceções durante erros.
  27.            self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  28.             # Garante que os dados sejam armazenados com codificação UFT-8.
  29.            self::$db->exec('SET NAMES utf8');
  30.         }
  31.         catch (PDOException $e)
  32.         {
  33.             # Então não carrega nada mais da página.
  34.            die("Connection Error: " . $e->getMessage());
  35.         }
  36.     }
  37.  
  38.     # Método estático - acessível sem instanciação.
  39.    public static function conexao()
  40.     {
  41.         # Garante uma única instância. Se não existe uma conexão, criamos uma nova.
  42.        if (!self::$db)
  43.         {
  44.             new Database();
  45.         }
  46.         # Retorna a conexão.
  47.        return self::$db;
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement