コード例 #1
0
ファイル: Model.php プロジェクト: qieangel2013/zys
 /**
  * 切换当前的数据库连接
  * @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;
 }