summaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2018-11-16 15:01:34 +0100
committerAndrey Andreev <narf@devilix.net>2018-11-16 15:01:34 +0100
commitda5cf99321daee9500518f63fcd58e0c57f7d53e (patch)
tree844f0b93436e9a7ff3ba50ed03e897f9d3c92e88 /system
parentfef6972a5cf19bcbec2ddc404cde6d5c4b432314 (diff)
[ci skip] Fix #5624
Diffstat (limited to 'system')
-rw-r--r--system/database/DB_driver.php12
-rw-r--r--system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php12
-rw-r--r--system/database/drivers/sqlite3/sqlite3_driver.php12
3 files changed, 9 insertions, 27 deletions
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index f8956f069..c397bb723 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -1308,19 +1308,13 @@ abstract class CI_DB_driver {
*/
public function list_fields($table)
{
- // Is there a cached result?
- if (isset($this->data_cache['field_names'][$table]))
- {
- return $this->data_cache['field_names'][$table];
- }
-
if (FALSE === ($sql = $this->_list_columns($table)))
{
return ($this->db_debug) ? $this->display_error('db_unsupported_function') : FALSE;
}
$query = $this->query($sql);
- $this->data_cache['field_names'][$table] = array();
+ $fields = array();
foreach ($query->result_array() as $row)
{
@@ -1342,10 +1336,10 @@ abstract class CI_DB_driver {
}
}
- $this->data_cache['field_names'][$table][] = $row[$key];
+ $fields[] = $row[$key];
}
- return $this->data_cache['field_names'][$table];
+ return $fields;
}
// --------------------------------------------------------------------
diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php
index 93871a99b..3602c282c 100644
--- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php
+++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php
@@ -128,24 +128,18 @@ class CI_DB_pdo_sqlite_driver extends CI_DB_pdo_driver {
*/
public function list_fields($table)
{
- // Is there a cached result?
- if (isset($this->data_cache['field_names'][$table]))
- {
- return $this->data_cache['field_names'][$table];
- }
-
if (($result = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE)
{
return FALSE;
}
- $this->data_cache['field_names'][$table] = array();
+ $fields = array();
foreach ($result->result_array() as $row)
{
- $this->data_cache['field_names'][$table][] = $row['name'];
+ $fields[] = $row['name'];
}
- return $this->data_cache['field_names'][$table];
+ return $fields;
}
// --------------------------------------------------------------------
diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php
index 41d9d484f..b6deccf68 100644
--- a/system/database/drivers/sqlite3/sqlite3_driver.php
+++ b/system/database/drivers/sqlite3/sqlite3_driver.php
@@ -230,24 +230,18 @@ class CI_DB_sqlite3_driver extends CI_DB {
*/
public function list_fields($table)
{
- // Is there a cached result?
- if (isset($this->data_cache['field_names'][$table]))
- {
- return $this->data_cache['field_names'][$table];
- }
-
if (($result = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE)
{
return FALSE;
}
- $this->data_cache['field_names'][$table] = array();
+ $fields = array();
foreach ($result->result_array() as $row)
{
- $this->data_cache['field_names'][$table][] = $row['name'];
+ $fields[] = $row['name'];
}
- return $this->data_cache['field_names'][$table];
+ return $fields;
}
// --------------------------------------------------------------------