function init_database($params = '', $return = FALSE) { $dsn_str = FALSE; $db_vals = array('hostname' => '', 'username' => '', 'password' => '', 'database' => '', 'pconnect' => FALSE, 'dbdriver' => 'mysql', 'db_debug' => FALSE); if (is_array($params)) { foreach ($db_vals as $key => $val) { if (isset($params[$key])) { $db_vals[$key] = $params[$key]; } } } else { if (strpos($params, '://') !== FALSE) { $dsn_str = TRUE; } else { include APPPATH . 'config/database' . EXT; $group = $params == '' ? $active_group : $params; foreach ($db_vals as $key => $val) { if (isset($db[$group][$key])) { $db_vals[$key] = $db[$group][$key]; } } } } if (!class_exists('_DB')) { require_once BASEPATH . 'drivers/' . $db_vals['dbdriver'] . EXT; } if ($dsn_str === TRUE) { $DB = new _DB($params); } else { $DB = new _DB($db_vals['hostname'], $db_vals['username'], $db_vals['password'], $db_vals['database']); $DB->set_debug($db_vals['db_debug']); $DB->set_persistence($db_vals['pconnect']); $DB->connect(); } if ($return === TRUE) { return $DB; } global $CI; if (!is_object($CI)) { $this->ci_is_loaded[] = 'db'; $this->db =& $DB; } else { $CI->ci_is_loaded[] = 'db'; $CI->db =& $DB; } }