X-Git-Url: http://git.pjr.cc/?p=glcas.git;a=blobdiff_plain;f=lib%2Fplugins%2Fdb.php;h=a337718499b244b6435720ae2c215469a5b4181f;hp=cf8974fa79c52c6c08b64ebb5dffe08b690de5f4;hb=bdc6417e64fc4a48c1364dc4773d68205f88b015;hpb=142006fe3120af663a31dcf936e1a75188446f47 diff --git a/lib/plugins/db.php b/lib/plugins/db.php index cf8974f..a337718 100644 --- a/lib/plugins/db.php +++ b/lib/plugins/db.php @@ -3,20 +3,105 @@ 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, $ncolumns) +{ + $db = db_getDB(); + + $sql = "create table \"$tablename\" (\"".$tablename."_id\" INTEGER PRIMARY KEY AUTOINCREMENT"; + for($i=1; $i <= $ncolumns; $i++) { + $colname = "column_$i"; + $sql .= ", $colname text"; + } + $sql .= ")"; + + $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_createTable($tablename) +function db_selectData($tablename, $column, $value) { + $db = db_getDB(); + + $sql = "select * from \"$tablename\" where column_$column like '%$value%'"; + $res = $db->query($sql); + $data = $res->fetchAll(); + return $data; +} + +function db_deleteData($tablename, $column, $value) +{ + $db = db_getDB(); + + $sql = "delete from \"$tablename\" where column_$column like '%$value%'"; + 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