classe BDB et sa methode listTables()
[bazdig.git] / lib / database.php
blob66b0a7a761284c26ec32b2486ebe35a9fec4bf6f
1 <?php
2 define('WARAQ_ROOT', '..');
3 require_once WARAQ_ROOT .'/ini.php';
5 class BDB extends PDO
7 function listTables()
9 $dbType = $this->getAttribute(PDO::ATTR_DRIVER_NAME);
10 if ('sqlite' == $dbType || 'sqlite2' == $dbType) {
11 $query = "select name from sqlite_master where type='table'";
12 } else {
13 $query = "show tables";
15 $result = $this->query($query);
16 $tables = array();
17 foreach ($result as $r) {
18 $tables []= new Table($r['name']);
21 return $tables;
25 class Table
27 var $name;
28 var $columns;
30 function __construct($name, $columns = array())
32 $this->name = $name;
33 $this->columns = $columns;
36 function loadColumns($db)
38 $table = $this->name;
39 $dbType = $db->getAttribute(PDO::ATTR_DRIVER_NAME);
40 if ('sqlite' == $dbType || 'sqlite2' == $dbType) {
41 $result = $db->fetchColumnTypes($table);
42 foreach ($result as $column => $type) {
43 $this->columns []= new Column($column, $type);
45 } else {
46 $columns = $db->query("show columns from $table");
53 class Column
55 var $name;
56 var $type;
58 function __construct($name, $type = NULL)
60 $this->name = $name;
61 $this->type = $type;