initial re-coding
[configmanager.git] / lib / db.php
diff --git a/lib/db.php b/lib/db.php
new file mode 100644 (file)
index 0000000..f24917f
--- /dev/null
@@ -0,0 +1,123 @@
+<?php
+
+function db_getDB()
+{
+       global $DB_URL;
+       
+       $dbobject = false;
+    global $BASE_DIR, $DB_HANDLE;
+    if($DB_HANDLE != false) return $DB_HANDLE;
+       try {
+               $dbobject = new PDO("$DB_URL");
+       } catch(PDOException $exep) {
+               error_log("execpt on db open");
+               return false;
+       }
+       
+       $DB_HANDLE = $dbobject;
+
+       return $dbobject;
+}
+
+function db_createDB()
+{
+       // theres not much to do yet with only sqlite support
+}
+
+// all columns end up as text
+function db_createTable($tablename)
+{
+       $db = db_getDB();
+       
+       if(db_tableExists($tablename)) return true;
+       
+       $sql = "create table \"$tablename\" (\"".$tablename."_id\" INTEGER PRIMARY KEY AUTOINCREMENT";
+       for($i=1; $i < func_num_args(); $i++) {
+               $colname = func_get_arg($i);
+               $sql .= ", $colname text";
+       }
+       $sql .= ")";
+       
+       //echo "sql: $sql\n";
+       $db->query($sql);
+}
+
+function db_insertData($tablename)
+{
+
+       $db = db_getDB();
+       
+       $sql = "insert into \"$tablename\" values (NULL";
+       for($i=1; $i < func_num_args(); $i++) {
+               $sql .= ",'".func_get_arg($i)."'";
+       }
+       $sql .=")";
+       
+       $db->query($sql);
+}
+
+function db_selectData($tablename, $column="", $value="")
+{
+       $db = db_getDB();
+       
+       if($column != "") $extra = " where $column like '%$value%'";
+       else $extra = "";
+       $sql = "select * from \"$tablename\"$extra";
+       $res = $db->query($sql);
+       if(!$res) return false;
+       $data = $res->fetchAll();
+       
+       return $data;
+}
+
+function db_deleteData($tablename, $column, $value)
+{
+       $db = db_getDB();
+       
+       $sql = "delete from \"$tablename\" where $column like '%$value%'";
+       //echo "Sql is $sql\n";
+       return $db->query($sql);
+       
+}
+
+function db_updateData($tablename, $column, $newdata, $wherecol, $wheredata, $exact=true)
+{
+       $db = db_getDB();
+       
+       if($exact) $sql = "update \"$tablename\" set $column='$newdata' where $wherecol='$wheredata'";
+       else $sql = "update \"$tablename\" set $column='$newdata' where $wherecol like '$wheredata'";
+       return $db->query($sql);
+}
+
+function db_deleteTable($tablename)
+{
+       $db = db_getDB();
+       
+       $sql = "drop table $tablename";
+       
+       return $db->query($sql);
+}
+
+function db_tableExists($tablename)
+{
+       $db = db_getDB();
+       
+       $sql = "select count(*) from sqlite_master where type='table' and name='$tablename'";
+       $res = $db->query($sql);
+       
+       $value = $res->fetchColumn();
+       
+       if($value == 1) return true;
+       else return false;
+}
+
+function db_getTables()
+{
+       $db = db_getDB();
+       
+       $sql = "select name from sqlite_master where type='table' and name not like 'sqlite_%'";
+       $res = $db->query($sql);
+       
+       return $res->fetchAll();
+}
+?>
\ No newline at end of file