From 61c5717b76bc39823215aaceacdba97264f668d4 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 6 Oct 2006 17:29:24 +0000 Subject: --- system/database/DB.php | 100 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 system/database/DB.php (limited to 'system/database') diff --git a/system/database/DB.php b/system/database/DB.php new file mode 100644 index 000000000..a60c98e2e --- /dev/null +++ b/system/database/DB.php @@ -0,0 +1,100 @@ +_ci_is_loaded('db') == TRUE AND $return == FALSE AND $active_record == FALSE) + { + return FALSE; + } + + // Load the DB config file if a DSN string wasn't passed + if (is_string($params) AND strpos($params, '://') === FALSE) + { + include(APPPATH.'config/database'.EXT); + + $group = ($params == '') ? $active_group : $params; + + if ( ! isset($db[$group])) + { + show_error('You have specified an invalid database connection group: '.$group); + } + + $params = $db[$group]; + } + + // No DB specified yet? Beat them senseless... + if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '') + { + show_error('You have not selected a database type to connect to.'); + } + + // Load the DB classes. Note: Since the active record class is optional + // we need to dynamically create a class that extends proper parent class + // based on whether we're using the active record class or not. + // Kudos to Paul for discovering this clever use of eval() + + if ($active_record == TRUE) + { + $params['active_r'] = TRUE; + } + + require_once(BASEPATH.'database/DB_driver'.EXT); + + if ( ! isset($params['active_r']) OR $params['active_r'] == TRUE) + { + require_once(BASEPATH.'database/DB_active_rec'.EXT); + + if ( ! class_exists('CI_DB')) + { + eval('class CI_DB extends CI_DB_active_record { }'); + } + } + else + { + if ( ! class_exists('CI_DB')) + { + eval('class CI_DB extends CI_DB_driver { }'); + } + } + + require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver'.EXT); + + // Instantiate the DB adapter + $driver = 'CI_DB_'.$params['dbdriver'].'_driver'; + $DB = new $driver($params); + + if ($return === TRUE) + { + return $DB; + } + + $obj->db =& $DB; +} + + +?> \ No newline at end of file -- cgit v1.2.3-24-g4f1b