summaryrefslogtreecommitdiffstats
path: root/modules/database/classes/driver
diff options
context:
space:
mode:
Diffstat (limited to 'modules/database/classes/driver')
-rw-r--r--modules/database/classes/driver/pdo/db.php21
1 files changed, 20 insertions, 1 deletions
diff --git a/modules/database/classes/driver/pdo/db.php b/modules/database/classes/driver/pdo/db.php
index fa02e63..c73995d 100644
--- a/modules/database/classes/driver/pdo/db.php
+++ b/modules/database/classes/driver/pdo/db.php
@@ -60,7 +60,26 @@ class DB_PDO_Driver extends DB{
return $this->execute('SELECT lastval() as id')->current()->id;
return $this->conn->lastInsertId();
}
-
+
+ public function list_columns($table) {
+ $columns=array();
+ if ($this->db_type == 'mysql') {
+ $table_desc = $this->execute("DESCRIBE `$table`");
+ foreach($table_desc as $column)
+ $columns[]=$column->Field;
+ }
+ if ($this->db_type == 'pgsql') {
+ $table_desc = $this->execute("select column_name from information_schema.columns where table_name = '{$table}' and table_catalog=current_database();");
+ foreach($table_desc as $column)
+ $columns[]=$column->column_name;
+ }
+ if ($this->db_type == 'sqlite') {
+ $table_desc = $this->execute("PRAGMA table_info('$table')");
+ foreach($table_desc as $column)
+ $columns[]=$column->name;
+ }
+ return $columns;
+ }
/**
* Executes a prepared statement query
*