Guest User

Untitled

a guest
Jul 21st, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. <?php
  2.  
  3. $servername = "your-maria-db-server";
  4. $username = "your-db-username";
  5. $password = "your-db-password";
  6. $dbname = "your-dbanme";
  7.  
  8. $db = new PDO('mysql:host=' . $servername . ';dbname=' . $dbname, $username, $password);
  9.  
  10. function selectAnd($entityName, $where = null, $orderBy = null)
  11. {
  12. global $db;
  13. $query = 'SELECT * FROM ' . $entityName;
  14. if ($where != null) {
  15. if (count($where) > 0) {
  16. $query .= ' WHERE' . generateWhere('AND', $where);
  17. }
  18. }
  19. if ($orderBy != null) {
  20. if (count($orderBy) > 0) {
  21. $query .= ' ORDER BY' . generateOrderBy($orderBy);
  22. }
  23. }
  24. $statement = $db->prepare($query);
  25. if ($where != null) {
  26. $statement = bindQuery($statement, $where);
  27. }
  28. $statement->execute();
  29. $result = $statement->fetchAll();
  30. $statement->closeCursor();
  31. return $result;
  32. }
  33.  
  34. function selectOr($entityName, $where = null, $orderBy = null)
  35. {
  36. global $db;
  37. $query = 'SELECT * FROM ' . $entityName;
  38. if ($where != null) {
  39. if (count($where) > 0) {
  40. $query .= ' WHERE' . generateWhere('OR', $where);
  41. }
  42. }
  43. if ($orderBy != null) {
  44. if (count($orderBy) > 0) {
  45. $query .= ' ORDER BY' . generateOrderBy($orderBy);
  46. }
  47. $query = substr($query, 0, intval(strlen($query) - 1));
  48. }
  49. $statement = $db->prepare($query);
  50. if ($where != null) {
  51. $statement = bindQuery($statement, $where);
  52. }
  53. $statement->execute();
  54. $result = $statement->fetchAll();
  55. $statement->closeCursor();
  56. return $result;
  57. }
  58.  
  59. function insert($entityName, $data)
  60. {
  61. global $db;
  62. $query = 'INSERT INTO ' . $entityName . ' ' . generateColumnsParameters('', $data) . ' VALUES ' . generateColumnsParameters(':', $data);
  63. $statement = $db->prepare($query);
  64. $statement = bindQuery($statement, $data);
  65. $statement->execute();
  66. $statement->closeCursor();
  67. }
  68.  
  69. function update($entityName, $data, $where)
  70. {
  71. global $db;
  72. $query = 'UPDATE ' . $entityName . ' SET ' . generateUpdateParameters($data) . ' WHERE ' . generateWhere('AND', $where);
  73. $statement = $db->prepare($query);
  74. $statement = bindQuery($statement, $data);
  75. $statement = bindQuery($statement, $where);
  76. $statement->execute();
  77. $statement->closeCursor();
  78. }
  79.  
  80. function delete($entityName, $where)
  81. {
  82. global $db;
  83. $query = 'DELETE FROM ' . $entityName . ' WHERE ' . generateWhere('AND', $where);
  84. $statement = $db->prepare($query);
  85. $statement = bindQuery($statement, $where);
  86. $statement->execute();
  87. $statement->closeCursor();
  88. }
  89.  
  90. function generateWhere($operator, $where)
  91. {
  92. $query = '';
  93. foreach ($where as $key => $value) {
  94. $query .= ' ' . $key . ' = :' . $key . ' ' . $operator;
  95. }
  96. $query = substr($query, 0, intval(strlen($query) - intval(strlen($operator) + 1)));
  97. return $query;
  98. }
  99.  
  100. function generateOrderBy($orderBy)
  101. {
  102. $query = '';
  103. foreach ($orderBy as $value) {
  104. $query .= ' ' . $value . ',';
  105. }
  106. $query = substr($query, 0, intval(strlen($query) - 1));
  107. return $query;
  108. }
  109.  
  110. function generateUpdateParameters($data)
  111. {
  112. $query = '';
  113. foreach ($data as $key => $value) {
  114. $query .= $key . ' = :' . $key . ', ';
  115. }
  116. $query = substr($query, 0, intval(strlen($query) - 2));
  117. return $query;
  118. }
  119.  
  120. function generateColumnsParameters($isParam, $data)
  121. {
  122. $query = '(';
  123. foreach ($data as $key => $value) {
  124. $query .= $isParam . $key . ',';
  125. }
  126. $query = substr($query, 0, intval(strlen($query) - 1));
  127. $query .= ')';
  128. return $query;
  129. }
  130.  
  131. function bindQuery($statement, $data)
  132. {
  133. foreach ($data as $key => $value) {
  134. $statement->bindValue(':' . $key, $value);
  135. }
  136. return $statement;
  137. }
Add Comment
Please, Sign In to add comment