diff options
Diffstat (limited to 'system/database/DB_driver.php')
-rw-r--r-- | system/database/DB_driver.php | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 0b4707370..185f930bf 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -2,11 +2,11 @@ /** * CodeIgniter * - * An open source application development framework for PHP 5.2.4 or newer + * An open source application development framework for PHP * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014, British Columbia Institute of Technology + * Copyright (c) 2014 - 2015, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (http://ellislab.com/) - * @copyright Copyright (c) 2014, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2015, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link http://codeigniter.com * @since Version 1.0.0 @@ -456,9 +456,23 @@ abstract class CI_DB_driver { // -------------------------------------------------------------------- /** + * DB connect + * + * This is just a dummy method that all drivers will override. + * + * @return mixed + */ + public function db_connect() + { + return TRUE; + } + + // -------------------------------------------------------------------- + + /** * Persistent database connection * - * @return resource + * @return mixed */ public function db_pconnect() { @@ -964,7 +978,7 @@ abstract class CI_DB_driver { * Calculate the aggregate query elapsed time * * @param int The number of decimal places - * @return int + * @return string */ public function elapsed_time($decimals = 6) { @@ -1034,7 +1048,7 @@ abstract class CI_DB_driver { /** * Escape String * - * @param string $str + * @param string|string[] $str Input string * @param bool $like Whether or not the string will be used in a LIKE condition * @return string */ @@ -1102,10 +1116,10 @@ abstract class CI_DB_driver { * Retrieves the primary key. It assumes that the row in the first * position is the primary key * - * @param string the table name + * @param string $table Table name * @return string */ - public function primary($table = '') + public function primary($table) { $fields = $this->list_fields($table); return is_array($fields) ? current($fields) : FALSE; @@ -1216,7 +1230,7 @@ abstract class CI_DB_driver { * @param string the table name * @return array */ - public function list_fields($table = '') + public function list_fields($table) { // Is there a cached result? if (isset($this->data_cache['field_names'][$table])) @@ -1224,11 +1238,6 @@ abstract class CI_DB_driver { return $this->data_cache['field_names'][$table]; } - if ($table === '') - { - return ($this->db_debug) ? $this->display_error('db_field_param_missing') : FALSE; - } - if (FALSE === ($sql = $this->_list_columns($table))) { return ($this->db_debug) ? $this->display_error('db_unsupported_function') : FALSE; @@ -1282,18 +1291,13 @@ abstract class CI_DB_driver { /** * Returns an object with field data * - * @param string the table name - * @return object + * @param string $table the table name + * @return array */ - public function field_data($table = '') + public function field_data($table) { - if ($table === '') - { - return ($this->db_debug) ? $this->display_error('db_field_param_missing') : FALSE; - } - $query = $this->query($this->_field_data($this->protect_identifiers($table, TRUE, NULL, FALSE))); - return $query->field_data(); + return ($query) ? $query->field_data() : FALSE; } // -------------------------------------------------------------------- @@ -1461,7 +1465,7 @@ abstract class CI_DB_driver { */ protected function _has_operator($str) { - return (bool) preg_match('/(<|>|!|=|\sIS\s|\sEXISTS|\sBETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); + return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); } // -------------------------------------------------------------------- @@ -1485,7 +1489,8 @@ abstract class CI_DB_driver { '\s*(?:<|>|!)?=\s*', // =, <=, >=, != '\s*<>?\s*', // <, <> '\s*>\s*', // > - '\s+IS(?:\sNOT)?(?:\sNULL)?', // IS[ NOT] NULL + '\s+IS NULL', // IS NULL + '\s+IS NOT NULL', // IS NOT NULL '\s+EXISTS\s*\([^\)]+\)', // EXISTS(sql) '\s+NOT EXISTS\s*\([^\)]+\)', // NOT EXISTS(sql) '\s+BETWEEN\s+\S+\s+AND\s+\S+', // BETWEEN value AND value |