Advertisement
Guest User

Untitled

a guest
Feb 1st, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. <?php
  2.  
  3. abstract class database {
  4. /* Método construtor do banco de dados */
  5.  
  6. private function __construct() {
  7.  
  8. }
  9.  
  10. /* Evita que a classe seja clonada */
  11.  
  12. private function __clone() {
  13.  
  14. }
  15.  
  16. /* Método que destroi a conexão com banco de dados e remove da memória todas as variáveis setadas */
  17.  
  18. public function __destruct() {
  19. $this->disconnect();
  20. foreach ($this as $key => $value) {
  21. unset($this->$key);
  22. }
  23. }
  24.  
  25. private static $dbtype = "mysql";
  26. private static $host = "localhost";
  27. private static $port = "3306";
  28. private static $user = "root";
  29. private static $password = "";
  30. private static $db = "banco";
  31.  
  32.  
  33. /* Metodos que trazem o conteudo da variavel desejada
  34. @return $xxx = conteudo da variavel solicitada */
  35.  
  36. private function getDBType() {
  37. return self::$dbtype;
  38. }
  39.  
  40. private function getHost() {
  41. return self::$host;
  42. }
  43.  
  44. private function getPort() {
  45. return self::$port;
  46. }
  47.  
  48. private function getUser() {
  49. return self::$user;
  50. }
  51.  
  52. private function getPassword() {
  53. return self::$password;
  54. }
  55.  
  56. private function getDB() {
  57. return self::$db;
  58. }
  59.  
  60. private function connect() {
  61. try {
  62. $this->conexao = new PDO($this->getDBType() . ":host=" . $this->getHost() . ";port=" . $this->getPort() . ";dbname=" . $this->getDB(), $this->getUser(), $this->getPassword());
  63. } catch (PDOException $i) {
  64. //se houver exceção, exibe
  65. die("Erro: <code>" . $i->getMessage() . "</code>");
  66. }
  67.  
  68. return ($this->conexao);
  69. }
  70.  
  71. private function disconnect() {
  72. $this->conexao = null;
  73. }
  74.  
  75. /* Método select que retorna um VO ou um array de objetos */
  76.  
  77. public function selectDB($sql, $params = null, $class = null) {
  78. $query = $this->connect()->prepare($sql);
  79. $query->execute($params);
  80.  
  81. if (isset($class)) {
  82. $rs = $query->fetchAll(PDO::FETCH_CLASS, $class) or die(print_r($query->errorInfo(), true));
  83. } else {
  84. //$rs = $query->fetchAll(PDO::FETCH_OBJ) or die(print_r($query->errorInfo(), true));
  85. $rs = $query->fetchAll(PDO::FETCH_OBJ);
  86. }
  87. self::__destruct();
  88. return $rs;
  89. }
  90.  
  91. /* Método insert que insere valores no banco de dados e retorna o último id inserido */
  92.  
  93. public function insertDB($sql, $params = null) {
  94. $conexao = $this->connect();
  95. $query = $conexao->prepare($sql);
  96. $query->execute($params);
  97. $rs = $conexao->lastInsertId() or die(print_r($query->errorInfo(), true));
  98. self::__destruct();
  99. return $rs;
  100. }
  101.  
  102. /* Método update que altera valores do banco de dados e retorna o número de linhas afetadas */
  103.  
  104. public function updateDB($sql, $params = null) {
  105. $query = $this->connect()->prepare($sql);
  106. $query->execute($params);
  107. $rs = $query->rowCount() or die(print_r($query->errorInfo(), true));
  108. self::__destruct();
  109. return $rs;
  110. }
  111.  
  112. /* Método delete que excluí valores do banco de dados retorna o número de linhas afetadas */
  113.  
  114. public function deleteDB($sql, $params = null) {
  115. $query = $this->connect()->prepare($sql);
  116. $query->execute($params);
  117. $rs = $query->rowCount() or die(print_r($query->errorInfo(), true));
  118. self::__destruct();
  119. return $rs;
  120. }
  121.  
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement