diff options
author | Dracony <draconyster@gmail.com> | 2013-01-17 22:49:35 +0200 |
---|---|---|
committer | Roman Tsiupa <draconyster@gmail.com> | 2013-01-18 23:09:23 +0200 |
commit | 6a220e18515a29f11ee4ae5818aecd22baf3c1d1 (patch) | |
tree | 4959eccf56d3d6537a57f5320e2f8692f8abf747 /modules/database/classes | |
parent | 9ca73bdf356db477c3b6f403ab0de38c1e81dfe1 (diff) | |
download | PHPixie-6a220e18515a29f11ee4ae5818aecd22baf3c1d1.zip PHPixie-6a220e18515a29f11ee4ae5818aecd22baf3c1d1.tar.gz PHPixie-6a220e18515a29f11ee4ae5818aecd22baf3c1d1.tar.bz2 |
working on with()
Diffstat (limited to 'modules/database/classes')
-rw-r--r-- | modules/database/classes/db.php | 2 | ||||
-rw-r--r-- | modules/database/classes/driver/pdo/db.php | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/modules/database/classes/db.php b/modules/database/classes/db.php index 854b06f..dc6934f 100644 --- a/modules/database/classes/db.php +++ b/modules/database/classes/db.php @@ -44,6 +44,8 @@ abstract class DB { * @access public
*/
public abstract function get_insert_id();
+
+ public abstract function list_columns($table);
/**
* Executes a named query where parameters are passed as an associative array
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
*
|