diff options
author | Andrey Andreev <narf@bofh.bg> | 2012-02-12 22:38:46 +0100 |
---|---|---|
committer | Andrey Andreev <narf@bofh.bg> | 2012-02-12 22:38:46 +0100 |
commit | 432b13f8e168006eac9d551c0ac463dadd3ef803 (patch) | |
tree | 6635eda43e986e11bcf11a7d04df6ec3db81912d /system/database/DB_driver.php | |
parent | 2e430a3f3b160641c36037fbaf92457e0b3bb51e (diff) | |
parent | de7da338e21885b9ecc4f5a64ba77ee8475960d2 (diff) |
Merge remote-tracking branch 'upstream/develop' into develop-db-cubrid
Diffstat (limited to 'system/database/DB_driver.php')
-rw-r--r-- | system/database/DB_driver.php | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 7445a5069..b829bbe46 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -81,8 +81,7 @@ class CI_DB_driver { var $stmt_id; var $curs_id; var $limit_used; - - + /** * Constructor. Accepts one parameter containing the database @@ -814,20 +813,23 @@ class CI_DB_driver { if ($query->num_rows() > 0) { - foreach ($query->result_array() as $row) + $table = FALSE; + $rows = $query->result_array(); + $key = (($row = current($rows)) && in_array('table_name', array_map('strtolower', array_keys($row)))); + + if ($key) { - if (isset($row['TABLE_NAME'])) - { - $retval[] = $row['TABLE_NAME']; - } - else - { - $retval[] = array_shift($row); - } + $table = array_key_exists('TABLE_NAME', $row) ? 'TABLE_NAME' : 'table_name'; + } + + foreach ($rows as $row) + { + $retval[] = ( ! $table) ? current($row) : $row[$table]; } } $this->data_cache['table_names'] = $retval; + return $this->data_cache['table_names']; } @@ -1436,10 +1438,7 @@ class CI_DB_driver { return $item.$alias; } - - } - /* End of file DB_driver.php */ /* Location: ./system/database/DB_driver.php */ |