/** * 切换当前的数据库连接 * @access public * @param integer $linkNum 连接序号 * @param mixed $config 数据库连接信息 * @param boolean $force 强制重新连接 * @return Model */ public function db($linkNum = '', $config = '', $force = false) { if ('' === $linkNum && $this->db) { return $this->db; } static $_db = array(); if (!isset($_db[$linkNum]) || $force) { // 创建一个新的实例 if (!empty($config) && is_string($config) && false === strpos($config, '/')) { // 支持读取配置参数 $config_obj = Yaf_Registry::get("config"); $config_db = $config_obj->database->config->toArray(); $config = $config_db; } else { $config_obj = Yaf_Registry::get("config"); $config_db = $config_obj->database->config->toArray(); $config = $config_db; } $_db[$linkNum] = db_Db::getInstance($config); } elseif (NULL === $config) { $_db[$linkNum]->close(); // 关闭数据库连接 unset($_db[$linkNum]); return; } // 切换数据库连接 $this->db = $_db[$linkNum]; $this->_after_db(); // 字段检测 if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; }