lots of changed, though it'll probably be all backed-out because
[configmanager.git] / lib / db.php
index f24917f..dd5b1e3 100644 (file)
@@ -2,7 +2,14 @@
 
 function db_getDB()
 {
-       global $DB_URL;
+       global $DB_URL, $IS_WEB_REQUEST;
+       
+       if(!isset($IS_WEB_REQUEST)) {
+               // only the web requests are allowed to create dbs
+               echo "no web request, no db\n";
+               return false;
+       }
+       
        
        $dbobject = false;
     global $BASE_DIR, $DB_HANDLE;
@@ -29,6 +36,8 @@ function db_createTable($tablename)
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        if(db_tableExists($tablename)) return true;
        
        $sql = "create table \"$tablename\" (\"".$tablename."_id\" INTEGER PRIMARY KEY AUTOINCREMENT";
@@ -47,21 +56,48 @@ function db_insertData($tablename)
 
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        $sql = "insert into \"$tablename\" values (NULL";
        for($i=1; $i < func_num_args(); $i++) {
                $sql .= ",'".func_get_arg($i)."'";
        }
        $sql .=")";
        
+       //echo "sql is $sql\n";
+       
        $db->query($sql);
 }
 
-function db_selectData($tablename, $column="", $value="")
+function db_getMaxValue($tablename, $column, $columnsel="", $wheresel="")
+{
+       $db = db_getDB();
+       
+       if(!$db) return false;
+       
+       if($columnsel != "") {
+               $extra = " where $columnsel = '$wheresel'";
+       }
+       
+       $sql = "select max($column) from \"$tablename\"$extra";
+       $res = $db->query($sql);
+       if(!$res) return false;
+       $data = $res->fetchAll();
+       
+       return $data;
+}
+
+
+function db_selectData($tablename, $column="", $value="", $orderby = "")
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
+       
        if($column != "") $extra = " where $column like '%$value%'";
        else $extra = "";
+       if($orderby != "") $extra .= " order by $orderby";
        $sql = "select * from \"$tablename\"$extra";
        $res = $db->query($sql);
        if(!$res) return false;
@@ -74,6 +110,8 @@ function db_deleteData($tablename, $column, $value)
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        $sql = "delete from \"$tablename\" where $column like '%$value%'";
        //echo "Sql is $sql\n";
        return $db->query($sql);
@@ -84,6 +122,8 @@ function db_updateData($tablename, $column, $newdata, $wherecol, $wheredata, $ex
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        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);
@@ -93,6 +133,8 @@ function db_deleteTable($tablename)
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        $sql = "drop table $tablename";
        
        return $db->query($sql);
@@ -102,6 +144,8 @@ function db_tableExists($tablename)
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        $sql = "select count(*) from sqlite_master where type='table' and name='$tablename'";
        $res = $db->query($sql);
        
@@ -115,6 +159,8 @@ function db_getTables()
 {
        $db = db_getDB();
        
+       if(!$db) return false;
+       
        $sql = "select name from sqlite_master where type='table' and name not like 'sqlite_%'";
        $res = $db->query($sql);