Guest User

Untitled

a guest
Aug 9th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.34 KB | None | 0 0
  1. <?php
  2. //Low-Level-MySQL-API
  3. class mysql
  4. {
  5. private $con;
  6. private $server = 'localhost';
  7. private $user = '';
  8. private $password = '';
  9. private $db = '';
  10.  
  11.  
  12. function __construct()
  13. {
  14. $this->con = @new mysqli($this->server,$this->user,$this->password,$this->db);
  15. if (mysqli_connect_errno() == 0)
  16. return $this->con;
  17. else
  18. echo 'Could not connect to database ('.$this->db.'): ' .mysqli_connect_errno(). ' : ' .mysqli_connect_error();
  19. }
  20.  
  21. function __destruct()
  22. {
  23. $this->con->close();
  24. }
  25.  
  26. function Error_Handler($debug)
  27. {
  28. foreach($debug as $msg)
  29. {
  30. echo '<div style="background-color: #BB2222; border: 1px solid #000000;"><b>'.$msg['file'].'</b> | <b>[l.'.$msg['line'].']</b> : <b>ERROR</b> in function "<b>'.$msg['function'].'()"</b>.<br />Arguments: ';
  31. print_r($msg['args']);
  32. echo '</div>';
  33. }
  34. return 0;
  35. }
  36.  
  37. function stmt_bind_assoc (&$stmt, &$out) //fetch_assoc
  38. {
  39. $data = mysqli_stmt_result_metadata($stmt);
  40. $fields = array();
  41. $out = array();
  42.  
  43. $fields[0] = $stmt;
  44. $count = 1;
  45.  
  46. while($field = mysqli_fetch_field($data))
  47. {
  48. $fields[$count] = &$out[$field->name];
  49. $count++;
  50. }
  51. call_user_func_array(mysqli_stmt_bind_result, $fields);
  52. }
  53.  
  54. function EscapeString($string)
  55. {
  56. return $this->con->real_escape_string($string);
  57. }
  58.  
  59.  
  60. function DeleteTable($table){
  61. $data = "DROP TABLE `".$table."`";
  62. if ($query = $this->con->prepare($data))
  63. {
  64. $query->execute();
  65. return true;
  66. }
  67. else
  68. return $this->Error_Handler(debug_backtrace());
  69. $query->close();
  70. }
  71.  
  72. function Update($table,$name,$value,$editname,$content)
  73. {
  74. $data = "UPDATE `".$table."` Set `".$editname."`=? WHERE `".$name."`=?".$searchval;
  75. if ($query = $this->con->prepare($data))
  76. {
  77. $query->bind_param( 'ss',$content,$value);
  78. $query->execute();
  79. if ($query->affected_rows > 0)
  80. return true;
  81. else
  82. return false;
  83. }
  84. else
  85. return $this->Error_Handler(debug_backtrace());
  86. $query->close();
  87. }
  88.  
  89. function ReadTimestamp($table,$id,$name,$col="ID")
  90. {
  91. $data = "SELECT UNIX_TIMESTAMP(".$name.") FROM `".$table."` WHERE `".$col."`=?";
  92. if ($query = $this->con->prepare($data))
  93. {
  94. $query->bind_param( 's',$id);
  95. $query->execute();
  96. $query->bind_result($row);
  97. while ($query->fetch())
  98. return $row;
  99. }
  100. else
  101. return $this->Error_Handler(debug_backtrace());
  102. $query->close();
  103. }
  104.  
  105.  
  106. function ReadColFromTable($table,$name,$searchval="")
  107. {
  108. $data = "SELECT ".$name." FROM `".$table.'`'.$searchval;
  109. if ($query = $this->con->prepare($data))
  110. {
  111. $query->execute();
  112. $row = array();
  113. $this->stmt_bind_assoc($query, $row);
  114. $cols = array();//Zellen werden in numeriertem Array zurueckgegeben
  115. while ($query->fetch())
  116. foreach ($row as $key => $value)//schneller als array_values!
  117. array_push($cols,$value);
  118. return $cols;
  119. }
  120. else
  121. return $this->Error_Handler(debug_backtrace());
  122. $query->close();
  123. }
  124.  
  125. function ReadArrayFromTable($table,$name,$value,$searchval="")
  126. {
  127. $data = "SELECT * FROM `".$table."` WHERE `".$name."`=?".$searchval;
  128. if ($query = $this->con->prepare($data))
  129. {
  130. $query->bind_param( 's',$value);
  131. $query->execute();
  132. $row = array();
  133. $this->stmt_bind_assoc($query, $row);
  134. while ($query->fetch())
  135. return $row;
  136. }
  137. else
  138. return $this->Error_Handler(debug_backtrace());
  139. $query->close();
  140. }
  141.  
  142. function ReadFromTable($table,$name,$value,$retval,$searchval="")
  143. {
  144. $data = "SELECT ".$retval." FROM `".$table."` WHERE `".$name."`=?".$searchval;
  145. if ($query = $this->con->prepare($data))
  146. {
  147. $query->bind_param( 's',$value);
  148. $query->execute();
  149. $query->bind_result($content);
  150. while ($query->fetch())
  151. return $content;
  152. }
  153. else
  154. return $this->Error_Handler(debug_backtrace());
  155. $query->close();
  156. }
  157.  
  158. function AddToTable($table,$rows,$values,$check = false)
  159. {
  160. if ($check) //Doppelte Datensätze suchen und aus Liste löschen
  161. For ($i = 0; $i < count($rows); $i++)
  162. if (ReadFromTable($name,$rows[$i],$values[$i],$rows[$i])) {unset($rows[$i]); unset($values[$i]);}
  163. $data = "INSERT INTO `".$table."` (";
  164. $i = 0;
  165. foreach ($rows as $key => $value)
  166. {
  167. if ($i != count($rows)-1) $data = $data.'`'.$value.'`,'; else $data = $data.'`'.$value.'`)';
  168. $i++;
  169. }
  170. $data = $data.' VALUES (';
  171. $i = 0;
  172.  
  173. foreach ($values as $key => $retvalue)
  174. {
  175. if ($i != count($values)-1) $data = $data.'?,'; else $data = $data.'?)';
  176. $type = $type.'s';
  177. $i++;
  178. }
  179. if ($query = $this->con->prepare($data))
  180. {
  181. array_unshift($values,$type);
  182. //Bypass wrong behaviour of call_user_func_array()
  183. foreach($values as $key => $value) $tmp[$key] = &$values[$key];
  184. call_user_func_array(array($query,'bind_param'), $tmp);
  185. $query->execute();
  186. if ($query->affected_rows > 0)
  187. return true;
  188. else
  189. return false;
  190. }
  191. else
  192. return $this->Error_Handler(debug_backtrace());
  193. $query->close();
  194. }
  195.  
  196. function DeleteFromTable($table,$name,$value,$searchval="")
  197. {
  198. $data = "DELETE FROM `".$table."` WHERE `".$name."`=?".$searchval;
  199. if ($query = $this->con->prepare($data))
  200. {
  201. $query->bind_param( 's',$value);
  202. $query->execute();
  203. if ($query->affected_rows > 0)
  204. return true;
  205. else
  206. return false;
  207. }
  208. else
  209. return $this->Error_Handler(debug_backtrace());
  210. $query->close();
  211. }
  212.  
  213. function GetCount($table,$searchvalue ="")
  214. {
  215. $data = "SELECT COUNT(*) FROM `".$table.'`'.$searchvalue;
  216. if ($query = $this->con->prepare($data))
  217. {
  218. $query->execute();
  219. $query->bind_result($count);
  220. while ($query->fetch())
  221. return $count;
  222. }
  223. else
  224. return $this->Error_Handler(debug_backtrace());
  225. $query->close();
  226. }
  227.  
  228. function ClearTable($table)
  229. {
  230. $data ="TRUNCATE TABLE `".$table.'`';
  231. if ($query = $this->con->prepare($data))
  232. {
  233. $query->execute();
  234. if (empty($query->error))
  235. return true;
  236. else return false;
  237. }
  238. else
  239. return $this->Error_Handler(debug_backtrace());
  240. $query->close();
  241. }
  242.  
  243. function ResetAutoIncrement($table)
  244. {
  245. $data ="ALTER TABLE `".$table."` AUTO_INCREMENT = 1";
  246. if ($query = $this->con->prepare($data))
  247. {
  248. $query->execute();
  249. if (empty($query->error))
  250. return true;
  251. else return false;
  252. }
  253. else
  254. return $this->Error_Handler(debug_backtrace());
  255. $query->close();
  256. }
  257. }
  258. ?>
Add Comment
Please, Sign In to add comment