1 <?php
2
3
4
5 class mysql {
6 private static $db;
7 private static $queries;
8
9 public static function init() {
10 self::$db = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
11 self::$queries = array();
12 }
13
14 public static function query($name, $parameters = array(), $force=false) {
15 $meta = explode(".",$name);
16
17
18 if(!isset(self::$queries[$name])) {
19 $queriesXML = simplexml_load_file(Controller::$root."data/".$meta[0].".xml");
20 foreach($queriesXML as $query) {
21 $key = $meta[0].".".(string)$query['name'];
22 self::$queries[$key] = (string)$query;
23 }
24 }
25
26 $sql = self::$queries[$name] or die("Error: query <var>$name</var> is not found!");
27
28 if (count($parameters)) {
29 $formattedParams = array();
30
31 foreach($parameters as $paramName => $paramValue) {
32 if(!$force) {
33 switch($paramValue) {
34 case NULL:
35 $paramValue = "NULL";
36 break;
37 case "DEFAULT": break;
38 default:
39 $paramValue = "'".self::$db->real_escape_string($paramValue)."'";
40 break;
41 }
42 }
43 $formattedParams[":$paramName"] = $paramValue;
44 }
45
46 $sql = strtr($sql, $formattedParams);
47 }
48
49 $q = self::$db->query($sql) or die("<b>Database error:</b> ".$sql);
50 return $q;
51 }
52
53 public static function rawquery($sql) {
54 return self::$db->query($sql);
55 }
56
57 public static function last_id() {
58 return self::$db->insert_id;
59 }
60
61 62 63 64 65
66 public static function fetch_all($q) {
67 $data = array();
68 while($row = $q->fetch_assoc()) {
69 $data[] = $row;
70 }
71 return $data;
72 }
73 }
74 ?>