config = $config; } public function set_dsn($group = 'default') { if ( ! isset($this->config[$group])) { throw new InvalidArgumentException('Group '.$group.' not exists'); } $params = array( 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'autoinit' => TRUE, 'stricton' => FALSE, 'failover' => array() ); $config = array_merge($this->config[$group], $params); if ( ! empty($config['dsn'])) { $dsn = $config['dsn']; } else { $dsn = $config['dbdriver'].'://'.$config['username'].':'.$config['password'] .'@'.$config['hostname'].'/'.$config['database']; } $other_params = array_slice($config, 6); return $dsn.http_build_query($other_params); } public static function DB($group, $query_builder = FALSE) { include_once(BASEPATH.'database/DB.php'); try { $db = DB($group, $query_builder); } catch (Exception $e) { throw new InvalidArgumentException($e->getMessage()); } return $db; } }