CI框架多个mysql数据库进行切换的思路

这个问题是我最近刚刚学会的一个思路,可以来回自由切换到你想要的数据库,
首先:你要在database配置文件中配置好你默认的数据库,主要是用来你一进去就要操作的数据库,如图:
这里写图片描述

然后在记得这个数据库中新建一个表,就是用来后面切记数据库的表,这个表中所包含的字段就是配置数据库时所需要的字段,如下图:
这里写图片描述
然后就是,代码的编写,在MY_Controller.php里面编写,在公共部分类中去执行,

function switch_client_db($dbsettingid){
    //参数$dbsettingid是一个条件,想用到那个数据库根据前面设置表结构的时候区分条件来给打这里取出相应的数据库的信息,然后利用变量来配置想要的数据库,这段代码就是这个意思
        $dbsetting_info = $this->client_model->get_dbsetting_info(array('user_id'=>$dbsettingid,'type'=>'master'));
        $dbslave_info = $this->client_model->get_dbsetting_info(array('user_id'=>$dbsettingid,'type'=>'master'));

        $dbsetting_info['hostname'] = '这里是你的数据库地址';
        $dbsetting_info['username'] = '名字';
        $dbsetting_info['password'] = '密码';


        if(!empty($dbsetting_info)){

            $this->db_client_slave = $this->db_client = $this->load->database($dbsetting_info, true);  
        }

        $this->db_slave = $this->load->database('slave', true);

    }

还没有算完,接下来就是刚才说到要查到索取的数据库信息,这里还要配置你的model里面查询的数据库信息设置

/**
     * 根据id返回数据库信息
     * @param unknown_type $dbsetting_id
     */
    function get_dbsetting_info($dbsetting_id){
        if( empty($dbsetting_id) ) return false;
        if( is_array($dbsetting_id) )
            $this->db->where($dbsetting_id);
        else
            $this->db->where("user_id", $dbsetting_id);
        $query = $this->db->get($this->dbsetting_table);

        $dbsetting_info = $query->row_array();
//      pr($this->db->last_query());
        return $dbsetting_info;
    }

上面这个方法就是根据你传进来的条件,来查找所对应的数据库信息,在这里基本上就是介绍完了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值