Guest User

database

a guest
May 30th, 2020
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.86 KB | None | 0 0
  1. <?php
  2. if(!defined('INITIALIZED'))
  3. exit;
  4.  
  5. class Database extends PDO
  6. {
  7. public $connectionError = '';
  8. private $connected = false;
  9. const DB_MYSQL = 1;
  10. const DB_SQLITE = 2;
  11. const DB_PGSQL = 3;
  12.  
  13. private $db_driver;
  14. private $db_host = 'localhost';
  15. private $db_port = '3306';
  16. private $db_name;
  17. private $db_username;
  18. private $db_password;
  19. private $db_file;
  20.  
  21. public $queriesCount = 0;
  22. public $printQueries = false;
  23.  
  24. public function connect()
  25. {
  26. return false;
  27. }
  28.  
  29. public function isConnected()
  30. {
  31. return $this->connected;
  32. }
  33.  
  34. public function setPrintQueries($value)
  35. {
  36. return $this->printQueries = $value;
  37. }
  38.  
  39. public function setConnected($value)
  40. {
  41. $this->connected = $value;
  42. }
  43.  
  44. public function getDatabaseDriver()
  45. {
  46. return $this->db_driver;
  47. }
  48.  
  49. public function getDatabaseHost()
  50. {
  51. return $this->db_host;
  52. }
  53.  
  54. public function getDatabasePort()
  55. {
  56. return $this->db_port;
  57. }
  58.  
  59. public function getDatabaseName()
  60. {
  61. return $this->db_name;
  62. }
  63.  
  64. public function getDatabaseUsername()
  65. {
  66. return $this->db_username;
  67. }
  68.  
  69. public function getDatabasePassword()
  70. {
  71. return $this->db_password;
  72. }
  73.  
  74. public function getDatabaseFile()
  75. {
  76. return $this->db_file;
  77. }
  78.  
  79. public function setDatabaseDriver($value)
  80. {
  81. $this->db_driver = $value;
  82. }
  83.  
  84. public function setDatabaseHost($value)
  85. {
  86. $this->db_host = $value;
  87. }
  88.  
  89. public function setDatabasePort($value)
  90. {
  91. $this->db_port = $value;
  92. }
  93.  
  94. public function setDatabaseName($value)
  95. {
  96. $this->db_name = $value;
  97. }
  98.  
  99. public function setDatabaseUsername($value)
  100. {
  101. $this->db_username = $value;
  102. }
  103.  
  104. public function setDatabasePassword($value)
  105. {
  106. $this->db_password = $value;
  107. }
  108.  
  109. public function setDatabaseFile($value)
  110. {
  111. $this->db_file = $value;
  112. }
  113.  
  114. public function beginTransaction()
  115. {
  116. if($this->isConnected() || $this->connect())
  117. return parent::beginTransaction();
  118. else
  119. new Error_Critic('', 'Website is not connected to database. Cannot execute "beginTransaction()"');
  120. }
  121.  
  122. public function commit()
  123. {
  124. if($this->isConnected() || $this->connect())
  125. return parent::commit();
  126. else
  127. new Error_Critic('', 'Website is not connected to database. Cannot execute "commit()"');
  128. }
  129.  
  130. public function errorCode()
  131. {
  132. if($this->isConnected() || $this->connect())
  133. return parent::errorCode();
  134. else
  135. new Error_Critic('', 'Website is not connected to database. Cannot execute "errorCode()"');
  136. }
  137.  
  138. public function errorInfo()
  139. {
  140. if($this->isConnected() || $this->connect())
  141. return parent::errorInfo();
  142. else
  143. new Error_Critic('', 'Website is not connected to database. Cannot execute errorInfo()');
  144. }
  145.  
  146. public function exec($statement)
  147. {
  148. if($this->isConnected() || $this->connect())
  149. return parent::exec($statement);
  150. else
  151. new Error_Critic('', 'Website is not connected to database. Cannot execute exec($statement)');
  152. }
  153.  
  154. public function getAttribute($attribute)
  155. {
  156. if($this->isConnected() || $this->connect())
  157. return parent::getAttribute($attribute);
  158. else
  159. new Error_Critic('', 'Website is not connected to database. Cannot execute getAttribute($attribute)');
  160. }
  161.  
  162. public static function getAvailableDrivers()
  163. {
  164. if($this->isConnected() || $this->connect())
  165. return parent::getAvailableDrivers();
  166. else
  167. new Error_Critic('', 'Website is not connected to database. Cannot execute getAvailableDrivers()');
  168. }
  169.  
  170. public function inTransaction()
  171. {
  172. if($this->isConnected() || $this->connect())
  173. return parent::inTransaction();
  174. else
  175. new Error_Critic('', 'Website is not connected to database. Cannot execute inTransaction()');
  176. }
  177.  
  178. public function lastInsertId($name = NULL)
  179. {
  180. if($this->isConnected() || $this->connect())
  181. return parent::lastInsertId($name);
  182. else
  183. new Error_Critic('', 'Website is not connected to database. Cannot execute ');
  184. }
  185.  
  186. public function prepare($statement, $driver_options = array())
  187. {
  188. if($this->isConnected() || $this->connect())
  189. return parent::prepare($statement, $driver_options);
  190. else
  191. new Error_Critic('', 'Website is not connected to database. Cannot execute lastInsertId($name)');
  192. }
  193.  
  194. public function query($statement)
  195. {
  196. $this->queriesCount++;
  197. // BETA TESTS - uncomment line below to print all queries on website before execution
  198. //echo'<br />' . $statement . '<br />';
  199. if($this->isConnected() || $this->connect())
  200. {
  201. $ret = parent::query($statement);
  202. if($this->printQueries)
  203. {
  204. $_errorInfo = $this->errorInfo();
  205. echo '<table>';
  206. echo '<tr><td>Query: </td><td>' . $statement . '</td></tr>';
  207. echo '<tr><td>SQLSTATE: </td><td>' . $_errorInfo[0] . '</td></tr>';
  208. echo '<tr><td>Driver code: </td><td>' . $_errorInfo[1] . '</td></tr>';
  209. echo '<tr><td>Error message: </td><td>' . $_errorInfo[2] . '</td></tr>';
  210. echo '</table>';
  211. }
  212. return $ret;
  213. }
  214. else
  215. new Error_Critic('', 'Website is not connected to database. Cannot execute query($statement)');
  216. }
  217.  
  218. public function quote($string, $parameter_type = PDO::PARAM_STR)
  219. {
  220. if($this->isConnected() || $this->connect())
  221. return parent::quote($string, $parameter_type);
  222. else
  223. new Error_Critic('', 'Website is not connected to database. Cannot execute quote($string, $parameter_type)');
  224. }
  225.  
  226. public function rollBack()
  227. {
  228. if($this->isConnected() || $this->connect())
  229. return parent::rollBack();
  230. else
  231. new Error_Critic('', 'Website is not connected to database. Cannot execute rollBack()');
  232. }
  233.  
  234. public function setAttribute($attribute, $value)
  235. {
  236. if($this->isConnected() || $this->connect())
  237. return parent::setAttribute($attribute, $value);
  238. else
  239. new Error_Critic('', 'Website is not connected to database. Cannot execute setAttribute($attribute, $value)');
  240. }
  241.  
  242. public function setConnectionError($string)
  243. {
  244. $this->connectionError = $string;
  245. }
  246. }
Add Comment
Please, Sign In to add comment