Advertisement
Guest User

Untitled

a guest
Nov 18th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. <?php
  2. /*
  3. * Clase wrapper de PDO en modo Singleton.
  4. */
  5.  
  6. class DBConnection
  7. {
  8. // Defino una propiedad estática para almacenar el objeto PDO.
  9. /** @var PDO */
  10. protected static $db;
  11.  
  12. // Defino un constructor privado para evitar que cualquiera
  13. // instancie la clase.
  14. private function __construct()
  15. {}
  16.  
  17. /**
  18. * Conecta con la base de datos.
  19. */
  20. protected static function connect()
  21. {
  22. // Estos datos podrían leerse de un archivo de configuración
  23. // externo.
  24. // echo "Conectando a la base de datos...";
  25. $db_host = "localhost";
  26. $db_user = "root";
  27. $db_pass = "";
  28. $db_name = "proyecto_colibri";
  29. $db_dsn = "mysql:host=" . $db_host . ";dbname=" . $db_name . ";charset=utf8";
  30. self::$db = new PDO($db_dsn, $db_user, $db_pass);
  31. }
  32.  
  33. /**
  34. * Retorna el objeto de conexión PDO.
  35. *
  36. * @return PDO
  37. */
  38. public static function getConnection()
  39. {
  40. // Verificamos si tenemos el objeto PDO instanciado.
  41. if(is_null(self::$db)) {
  42. self::connect();
  43. }
  44.  
  45. return self::$db;
  46. }
  47.  
  48. /**
  49. * Retorna el PDOStatement del $query proporcionado.
  50. * Método de conveniencia.
  51. *
  52. * @param string $query
  53. * @return PDOStatement
  54. */
  55. public static function getStatement($query)
  56. {
  57. return self::getConnection()->prepare($query);
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement