f19a1fa443180676f7c505be3c65dc3591f7483a
[glcas.git] / lib / plugins / 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         $sql = "create table \"$tablename\" (\"".$tablename."_id\" INTEGER PRIMARY KEY AUTOINCREMENT";
33         for($i=1; $i < func_num_args(); $i++) {
34                 $colname = func_get_arg($i);
35                 $sql .= ", $colname text";
36         }
37         $sql .= ")";
38         
39         echo "sql: $sql\n";
40         $db->query($sql);
41 }
42
43 function db_insertData($tablename)
44 {
45
46         $db = db_getDB();
47         
48         $sql = "insert into \"$tablename\" values (NULL";
49         for($i=1; $i < func_num_args(); $i++) {
50                 $sql .= ",'".func_get_arg($i)."'";
51         }
52         $sql .=")";
53         
54         $db->query($sql);
55 }
56
57 function db_selectData($tablename, $column, $value)
58 {
59         $db = db_getDB();
60         
61         $sql = "select * from \"$tablename\" where $column like '%$value%'";
62         $res = $db->query($sql);
63         $data = $res->fetchAll();
64         
65         return $data;
66 }
67
68 function db_deleteData($tablename, $column, $value)
69 {
70         $db = db_getDB();
71         
72         $sql = "delete from \"$tablename\" where column_$column like '%$value%'";
73         return $db->query($sql);
74         
75 }
76
77 function db_updateData($tablename, $column, $newdata, $wherecol, $wheredata, $exact=true)
78 {
79         $db = db_getDB();
80         
81         if($exact) $sql = "update \"$tablename\" set $column='$newdata' where $wherecol='$wheredata'";
82         else $sql = "update \"$tablename\" set $column='$newdata' where $wherecol like '$wheredata'";
83         return $db->query($sql);
84 }
85
86 function db_deleteTable($tablename)
87 {
88         $db = db_getDB();
89         
90         $sql = "drop table $tablename";
91         
92         return $db->query($sql);
93 }
94
95 function db_tableExists($tablename)
96 {
97         $db = db_getDB();
98         
99         $sql = "select count(*) from sqlite_master where type='table' and name='$tablename'";
100         $res = $db->query($sql);
101         
102         $value = $res->fetchColumn();
103         
104         if($value == 1) return true;
105         else return false;
106 }
107
108 function db_getTables()
109 {
110         $db = db_getDB();
111         
112         $sql = "select name from sqlite_master where type='table' and name not like 'sqlite_%'";
113         $res = $db->query($sql);
114         
115         return $res->fetchAll();
116 }
117 ?>