2
0

db.class.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. class db
  3. {
  4. private static $dbh;
  5. private static $error;
  6. private static $qError;
  7. private static $stmt;
  8. private static function connexion()
  9. {
  10. $dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME;
  11. $options = array(
  12. PDO::ATTR_PERSISTENT => true,
  13. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
  14. );
  15. try {
  16. self::$dbh = new PDO($dsn, DB_USER, DB_PASS, $options);
  17. } catch (PDOException $e) {
  18. self::$error = $e->getMessage();
  19. }
  20. }
  21. public static function query(string $query)
  22. {
  23. self::connexion();
  24. self::$stmt = self::$dbh->prepare($query);
  25. }
  26. public static function bind(string $param, string $value = NULL, string $type = null)
  27. {
  28. if (is_null($type)) {
  29. switch (true) {
  30. case is_int($value):
  31. $type = PDO::PARAM_INT;
  32. break;
  33. case is_bool($value):
  34. $type = PDO::PARAM_BOOL;
  35. break;
  36. case is_null($value):
  37. $type = PDO::PARAM_NULL;
  38. break;
  39. default:
  40. $type = PDO::PARAM_STR;
  41. }
  42. }
  43. self::$stmt->bindValue($param, $value, $type);
  44. }
  45. public static function execute()
  46. {
  47. return self::$stmt->execute();
  48. }
  49. public static function resultset()
  50. {
  51. self::execute();
  52. return self::$stmt->fetchAll(PDO::FETCH_ASSOC);
  53. }
  54. public static function single()
  55. {
  56. self::execute();
  57. return self::$stmt->fetch(PDO::FETCH_ASSOC);
  58. }
  59. public static function rowCount()
  60. {
  61. return self::$stmt->rowCount();
  62. }
  63. public static function lastInsertId()
  64. {
  65. return self::$dbh->lastInsertId();
  66. }
  67. public static function beginTransaction()
  68. {
  69. return self::$dbh->beginTransaction();
  70. }
  71. public static function endTransaction()
  72. {
  73. return self::$dbh->commit();
  74. }
  75. public static function cancelTransaction()
  76. {
  77. return self::$dbh->rollBack();
  78. }
  79. public static function debugDumpParams()
  80. {
  81. return self::$stmt->debugDumpParams();
  82. }
  83. public static function queryError()
  84. {
  85. self::$qError = self::$dbh->errorInfo();
  86. if (!is_null(self::$qError[2])) {
  87. echo self::$qError[2];
  88. }
  89. }
  90. }