premier commit
[bazdig.git] / lib / database.php
blob584c0ebcdacc7b7ed6ba7345cde5eeafcbe27352
1 <?php
2 define('WARAQ_ROOT', '..');
3 require_once WARAQ_ROOT .'/ini.php';
5 require_once "DB.php";
7 class Query
9 var $string;
10 var $tables;
11 var $conditions;
12 var $data;
14 function Query()
18 function db($dsn)
20 static $db;
22 $db = DB::Connect($dsn);
23 $this->data = $db->getAll($this->string);
26 function select()
28 $this->string = "select";
31 function from($tables)
33 $this->tables = $tables;
34 $this->string .= " ". implode(',', $tables) ." ";
37 function where($conditions)
39 $this->conditions = $conditions;
40 foreach ($conditions as $column => $value) {
45 class DataBase extends DB
47 var $db;
49 function DataBase($dsn)
51 $this->db = DB::Connect($dsn);
54 function insert($table, $data)
56 $query = "insert $table set ". DataBase::serialize_data($data);
57 return $this->query($query);
60 function select($data)
62 $tables = DataBase::extract_tables($data);
63 $query = "select * from ". implode(',', $tables);
64 $query .= " where ". DataBase::serialize_data($data, 'and');
65 return $this->query($query);
68 function serialize_data($data, $separator = ',')
70 $tuples = array();
71 foreach ($data as $key => $value) {
72 $tuples[] = " $key='$value' ";
74 return implode(" $separator ", $tuples);
77 function extract_tables($data)
79 $tables = array();
80 foreach (array_keys($data) as $column) {
81 list($tableName, $columnName) = split('.', $column);
82 $tables[] = $tableName;
84 return $tables;