Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. <?php
  2. namespace Core\Database;
  3. use \PDO;
  4.  
  5. class MsAcessDatabase extends Database{
  6.  
  7. private $db_dbq;
  8. private $db_user;
  9. private $db_pass;
  10. private $db_driver;
  11. private $pdo;
  12.  
  13. /**
  14. * @param $db_dbq
  15. * @param string $db_user
  16. * @param string $db_pass
  17. * @param string $db_driver
  18. */
  19. public function __construct($db_dbq, $db_user = '', $db_pass = '',$db_driver="{Microsoft Access Driver (*.mdb, *.accdb)}"){
  20. $this->db_dbq = $db_dbq;
  21. $this->db_user = $db_user;
  22. $this->db_pass = $db_pass;
  23. $this->db_driver = $db_driver;
  24. }
  25.  
  26. /**
  27. * @return PDO
  28. */
  29. private function getPDO(){
  30. if($this->pdo === null){
  31. try{
  32. $pdo = new PDO("odbc:Driver={$this->db_driver}; Dbq=$this->db_dbq; charset=UTF-8; Uid=' . $this->db_user . '; Pwd=' . $this->db_pass . ';'");
  33. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  34. }catch (\PDOException $e){
  35. var_dump($e);
  36. die();
  37. }
  38.  
  39. $this->pdo = $pdo;
  40. }
  41. return $this->pdo;
  42. }
  43.  
  44. /**
  45. * @param $statement
  46. * @param null $class_name
  47. * @param bool $one
  48. * @return array|mixed|\PDOStatement
  49. */
  50. public function query($statement, $class_name = null, $one = false){
  51. try{
  52. $req = $this->getPDO()->query($statement);
  53.  
  54. }catch (\PDOException $e){
  55. var_dump($e);
  56. die();
  57. }
  58. if(
  59. strpos($statement, 'UPDATE') === 0 ||
  60. strpos($statement, 'INSERT') === 0 ||
  61. strpos($statement, 'DELETE') === 0
  62. ) {
  63. return $req;
  64. }
  65. if($class_name === null){
  66. $req->setFetchMode(PDO::FETCH_OBJ);
  67. } else {
  68. $req->setFetchMode(PDO::FETCH_CLASS, $class_name);
  69. }
  70. if($one) {
  71. $datas = $req->fetch();
  72. } else {
  73. $datas = $req->fetchAll();
  74. }
  75. return $datas;
  76. }
  77.  
  78. /**
  79. * @param $statement
  80. * @param $attributes
  81. * @param null $class_name
  82. * @param bool $one
  83. * @return array|bool|mixed
  84. */
  85. public function prepare($statement, $attributes, $class_name = null, $one = false){
  86. try{
  87. $req = $this->getPDO()->prepare($statement);
  88. $res = $req->execute($attributes);
  89.  
  90. }catch (\PDOException $e){
  91. var_dump($e);
  92. die();
  93. }
  94. if(
  95. strpos($statement, 'UPDATE') === 0 ||
  96. strpos($statement, 'INSERT') === 0 ||
  97. strpos($statement, 'DELETE') === 0
  98. ) {
  99. return $res;
  100. }
  101. if($class_name === null){
  102. $req->setFetchMode(PDO::FETCH_OBJ);
  103. } else {
  104. $req->setFetchMode(PDO::FETCH_CLASS, $class_name);
  105. }
  106. if($one) {
  107. $datas = $req->fetch();
  108. } else {
  109. $datas = $req->fetchAll();
  110. }
  111. return $datas;
  112. }
  113.  
  114. /**
  115. * @return string
  116. */
  117. public function lastInsertId(){
  118. return $this->getPDO()->lastInsertId();
  119. }
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement