diff options
author | Andrey Andreev <narf@devilix.net> | 2017-09-27 17:57:46 +0200 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2017-09-27 17:57:46 +0200 |
commit | a9194650e6ae387be29aacfdf4b1b27a5c60ca34 (patch) | |
tree | 181c656640a53437f177425b6d0cc6b243b01a03 | |
parent | 4131d42c793c3db50b6184e5084332d5415c91cb (diff) |
Fix #5276
-rw-r--r-- | system/database/drivers/mysqli/mysqli_result.php | 14 | ||||
-rw-r--r-- | system/database/drivers/mysqli/mysqli_utility.php | 6 | ||||
-rw-r--r-- | user_guide_src/source/changelog.rst | 5 |
3 files changed, 9 insertions, 16 deletions
diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php index 0b3d9c2b4..bd465c405 100644 --- a/system/database/drivers/mysqli/mysqli_result.php +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -130,10 +130,10 @@ class CI_DB_mysqli_result extends CI_DB_result { * mysqli_result::fetch_fields() * * @used-by CI_DB_mysqli_result::field_data() - * @param int $flags + * @param int $type * @return string */ - private static function _get_field_type($flags) + private static function _get_field_type($type) { static $map; isset($map) OR $map = array( @@ -164,15 +164,7 @@ class CI_DB_mysqli_result extends CI_DB_result { MYSQLI_TYPE_GEOMETRY => 'geometry' ); - foreach ($map as $flag => $name) - { - if ($flags & $flag) - { - return $name; - } - } - - return $flags; + return isset($map[$type]) ? $map[$type] : $type; } // -------------------------------------------------------------------- diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php index 1699b611f..82cf5cebf 100644 --- a/system/database/drivers/mysqli/mysqli_utility.php +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -155,11 +155,7 @@ class CI_DB_mysqli_utility extends CI_DB_utility { while ($field = $query->result_id->fetch_field()) { // Most versions of MySQL store timestamp as a string - $is_int[$i] = ($field->type & MYSQLI_TYPE_TINY) - OR ($field->type & MYSQLI_TYPE_SHORT) - OR ($field->type & MYSQLI_TYPE_INT24) - OR ($field->type & MYSQLI_TYPE_LONG) - OR ($field->type & MYSQLI_TYPE_LONGLONG); + $is_int[$i] = in_array($field->type, array(MYSQLI_TYPE_TINY, MYSQLI_TYPE_SHORT, MYSQLI_TYPE_INT24, MYSQLI_TYPE_LONG), TRUE); // Create a string of field names $field_str .= $this->db->escape_identifiers($field->name).', '; diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b99a709ad..2dd77e389 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -7,6 +7,11 @@ Version 3.1.7 Release Date: Not Released +Bug fixes for 3.1.7 +------------------- + +- Fixed a regression (#5276) - :doc:`Database Utilities <database/utilities>` method ``backup()`` generated incorrect ``INSERT`` statements with the 'mysqli' driver. +- Fixed a regression where :doc:`Database Results <database/results>` method ``field_data()`` returned incorrect type names. Version 3.1.6 ============= |