用户
 找回密码
 入住 CI 中国社区
搜索
查看: 9965|回复: 5
收起左侧

[中级] 用CI的 AR类进行 跨库关联查操作

[复制链接]
发表于 2009-12-25 15:21:35 | 显示全部楼层 |阅读模式
本帖最后由 LSvKing 于 2009-12-27 12:56 编辑

最近在写套系统,上来就遇到麻烦了,具体情况就不说了,大概就是 A 库里有张表 写了一些用户信息,B 库是另外一个库,里边有张表记录了一些充值信息, 然后A 表里的用户有个字段是B表里没有的,但却是查询条件,所以要用到表关联。这个逻辑大家都清楚,主要是这两个表分布在了不同的数据库中,需要用到跨库表关联,这个在MYSQL里边是可以实现的,现在需要用CI 的AR类来实现,好下边给出解决方法,期间我走的弯路就不说了,希望能够帮助大家,让大家少走弯路。
  
   
PHP复制代码
 //多表信息查询//
        function cps_pay_in_dede(){
 
            $DB2 = $this->load->database('dedecms', TRUE);
            $this->db->select('un_cps.mid,un_cps.unionid,dede_shops_orders.userid,dede_shops_orders.priceCount,stime');
            $this->db->from($this->db->database.'.un_cps');
            $this->db->join($DB2->database.'.dede_shops_orders', 'un_cps.mid = dede_shops_orders.userid','left');
            $this->db->where('un_cps.unionid', '2');
            $this->db->where('dede_shops_orders.priceCount IS NOT NULL');
            //$this->db->select_sum('priceCount');
            return $this->db->get();
 
复制代码

我就直接用我的model 方法了,大家看一下吧,DB2 是写在数据库配置文件里的另一组配置 ,具体的去看手册里连接多数据库章节 http://codeigniter.org.cn/user_guide/database/connecting.html。  恩,这个方法在CI的官方英文论坛里边有,而且解决这个问题的方法有很多,这个是我试用成功的。 本人表达能力有限,就写这么多吧,有不清楚的直接留言,要不到QQ群找我也行(PS.记得带菊花)。

评分

参与人数 1威望 +5 收起 理由
Hex + 5 原创内容

查看全部评分

本帖被以下淘专辑推荐:

发表于 2009-12-25 16:23:37 | 显示全部楼层
哇 好帖哦
发表于 2011-6-19 09:45:12 | 显示全部楼层
学习了,不错哈~~
发表于 2011-10-28 10:09:23 | 显示全部楼层
正在找呢,好帖,必须顶!

本版积分规则