initial re-coding
[configmanager.git] / lib / db.php
1 <?php
2
3 function db_getDB()
4 {
5         global $DB_URL;
6         
7         $dbobject = false;
8     global $BASE_DIR, $DB_HANDLE;
9     if($DB_HANDLE != false) return $DB_HANDLE;
10         try {
11                 $dbobject = new PDO("$DB_URL");
12         } catch(PDOException $exep) {
13                 error_log("execpt on db open");
14                 return false;
15         }
16         
17         $DB_HANDLE = $dbobject;
18
19         return $dbobject;
20 }
21
22 function db_createDB()
23 {
24         // theres not much to do yet with only sqlite support
25 }
26
27 // all columns end up as text
28 function db_createTable($tablename)
29 {
30         $db = db_getDB();
31         
32         if(db_tableExists($tablename)) return true;
33         
34         $sql = "create table \"$tablename\" (\"".$tablename."_id\" INTEGER PRIMARY KEY AUTOINCREMENT";
35         for($i=1; $i < func_num_args(); $i++) {
36                 $colname = func_get_arg($i);
37                 $sql .= ", $colname text";
38         }
39         $sql .= ")";
40         
41         //echo "sql: $sql\n";
42         $db->query($sql);
43 }
44
45 function db_insertData($tablename)
46 {
47
48         $db = db_getDB();
49         
50         $sql = "insert into \"$tablename\" values (NULL";
51         for($i=1; $i < func_num_args(); $i++) {
52                 $sql .= ",'".func_get_arg($i)."'";
53         }
54         $sql .=")";
55         
56         $db->query($sql);
57 }
58
59 function db_selectData($tablename, $column="", $value="")
60 {
61         $db = db_getDB();
62         
63         if($column != "") $extra = " where $column like '%$value%'";
64         else $extra = "";
65         $sql = "select * from \"$tablename\"$extra";
66         $res = $db->query($sql);
67         if(!$res) return false;
68         $data = $res->fetchAll();
69         
70         return $data;
71 }
72
73 function db_deleteData($tablename, $column, $value)
74 {
75         $db = db_getDB();
76         
77         $sql = "delete from \"$tablename\" where $column like '%$value%'";
78         //echo "Sql is $sql\n";
79         return $db->query($sql);
80         
81 }
82
83 function db_updateData($tablename, $column, $newdata, $wherecol, $wheredata, $exact=true)
84 {
85         $db = db_getDB();
86         
87         if($exact) $sql = "update \"$tablename\" set $column='$newdata' where $wherecol='$wheredata'";
88         else $sql = "update \"$tablename\" set $column='$newdata' where $wherecol like '$wheredata'";
89         return $db->query($sql);
90 }
91
92 function db_deleteTable($tablename)
93 {
94         $db = db_getDB();
95         
96         $sql = "drop table $tablename";
97         
98         return $db->query($sql);
99 }
100
101 function db_tableExists($tablename)
102 {
103         $db = db_getDB();
104         
105         $sql = "select count(*) from sqlite_master where type='table' and name='$tablename'";
106         $res = $db->query($sql);
107         
108         $value = $res->fetchColumn();
109         
110         if($value == 1) return true;
111         else return false;
112 }
113
114 function db_getTables()
115 {
116         $db = db_getDB();
117         
118         $sql = "select name from sqlite_master where type='table' and name not like 'sqlite_%'";
119         $res = $db->query($sql);
120         
121         return $res->fetchAll();
122 }
123 ?>