Вход Регистрация
* Redis (Adm)

Обертка для PDO

  1. <?php
  2. /*
  3. Автор : Atkat && vShalamov
  4. */
  5.  
  6. class Db {
  7. protected $db;
  8.  
  9.  
  10. public function __construct() {
  11. $cfg = [
  12. 'host' => 'localhost', ### Хост базы ###
  13. 'charset' => 'utf8', ### Кодировка ###
  14. 'name' => 'wm', ### База данных ###
  15. 'user' => 'wm', ### Пользователь ###
  16. 'password' => 'EZTlb@123',]; ### Пароль ###
  17.  
  18. try{
  19. $this->db = new PDO('mysql:host='.$cfg['host'].';charset='.$cfg['charset'].';dbname='.$cfg['name'].'', $cfg['user'], $cfg['password'],[
  20.  
  21. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  22. PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
  23. PDO::ATTR_EMULATE_PREPARES => true]);
  24.  
  25. } catch (PDOException $e) {
  26. die('Нет соединения с БД! <br>Ошибка:<b> ' . $e->getMessage().'</b>');
  27. }
  28.  
  29. }
  30.  
  31. // Пример кода - $db-query('DELETE FROM users WHERE id = :id',['id'=>1]);
  32. public function query ($sql, $params = []) {
  33. $stmt = $this->db->prepare($sql);
  34. if (!empty($params)) {
  35. foreach ($params as $key => $val) {
  36. if (is_int($val)) {
  37. $type = PDO::PARAM_INT;
  38. } else {
  39. $type = PDO::PARAM_STR;
  40. }
  41. $stmt->bindValue(':'.$key, $val, $type);
  42. }
  43. }
  44. $stmt->execute();
  45. return $stmt;
  46. }
  47. // Пример кода - $aray = $db-fetchAll('SELECT * FROM users WHERE name = :name and last = :last',['name'=>'name','last'=>'last']);
  48. // Использовать для циклов
  49. public function fetchAll ($sql, $params = []) {
  50. $result = $this->query($sql, $params);
  51. return $result->fetchAll(PDO::FETCH_ASSOC);
  52. }
  53.  
  54. // Пример кода - $array = $db-fetch('SELECT * FROM users WHERE name = :name and last = :last',['name'=>'name','last'=>'last']);
  55. // Вывод на экран $array['параметр']
  56. public function fetch ($sql, $params = []) {
  57. $result = $this->query($sql, $params);
  58. return $result->fetch();
  59. }
  60. // Пример кода - $array = $db-object('SELECT * FROM users WHERE name = :name and last = :last',['name'=>'name','last'=>'last']);
  61. // Вывод на экран $array->параметр
  62. public function object ($sql, $params = []) {
  63. $result = $this->query($sql, $params);
  64. return $result->fetch(PDO::FETCH_OBJ);
  65. }
  66.  
  67.  
  68. public function column ($sql, $params = []) {
  69. $result = $this->query($sql, $params);
  70. return $result->fetchColumn();
  71. }
  72.  
  73. public function lastInsertId () {
  74. return $this->db->lastInsertId();
  75. }
  76.  
  77. // Пример кода - $db-fast_query('SELECT * FROM users WHERE name = ? and last = ?',['name','last']);
  78.  
  79. public function fast_query ($sql,$params = []) {
  80. $result = $this->db->prepare($sql);
  81. return $result->execute($params);
  82. }
  83. // Пример кода - $array = $db-fast_fetch('SELECT * FROM users WHERE name = ? and last = ?',['name','last']);
  84.  
  85. public function fast_fetch ($sql,$params = []) {
  86. $result = $this->db->prepare($sql);
  87. $result->execute($params);
  88. return $result->fetch();
  89. }
  90.  
  91.  
  92. }
  93.  
  94.  
  95.  
  96.  
  97.  
  98. $db = new Db();
» Описание: Смотрим код
» Время добавления: 20 Мая 2018 в 19:41
» Посмотров: 3420
» textarea
» Рейтинг: [+2 | -0]
Комментарии [3]
Онлайн: 0
Реклама