db_config) db_factory::$db_factory->db_config = array_merge($db_config, db_factory::$db_factory->db_config); return db_factory::$db_factory; } /** * 获取数据库操作实例 * @param $db_name 数据库配置名称 */ public function get_database($db_name) { if(!isset($this->db_list[$db_name]) || !is_object($this->db_list[$db_name])) { $this->db_list[$db_name] = $this->connect($db_name); } return $this->db_list[$db_name]; } /** * 加载数据库驱动 * @param $db_name 数据库配置名称 * @return object */ public function connect($db_name) { $object = null; switch($this->db_config[$db_name]['type']) { case 'mysql' : pc_base::load_sys_class('mysql', '', 0); $object = new mysql(); break; case 'mysqli' : $object = pc_base::load_sys_class('db_mysqli'); break; case 'access' : $object = pc_base::load_sys_class('db_access'); break; default : pc_base::load_sys_class('mysql', '', 0); $object = new mysql(); } $object->open($this->db_config[$db_name]); return $object; } /** * 关闭数据库连接 * @return void */ protected function close() { foreach($this->db_list as $db) { $db->close(); } } /** * 析构函数 */ public function __destruct() { $this->close(); } } ?>