thinkphp数据库连接池_ThinkPHP实现多数据库连接的解决方法

ThinkPHP实现连接多个数据的时候,如果数据库在同一个服务器里的话只需要这样定义模型:

然后就可以像D("Members");这样实例化模型,像普通模型那样操作了。

但后来发现他的数据库在两个不同的服务器,这样上面的方法就不行了。

这时候就需要使用TP的多数据连接特性了。

对此,查阅官方文档进行测试并修正之后得出了如下的解决方法:

要建立多数据连接,首先要构造数据库配置参数。但是如果每次都在建立多数据库连接的时候都建立数据库配置数组,这样就会很麻烦,还不如写在配置文件里。这里怎么写还是需要有点技巧的。

至此我们就可以用C("DB_BBS")和C("DB_NEWS")来得到数据库的配置数组。

配置好了,现在需要实例化模型。因为我们这个模型需使用两个不同的数据库的连接,项目的配置文件里默认了个数据库配置,如果你建立了某个表的模型比如UserModel.class.php,

如果你用D("User");但假如当前默认的数据库里没User个表的话就会报错。所以我们要建立个空模型。空模型是不会选表的。

有两种方法建立空模型。$dao=D();和$dao=new Model();都可以。

实例化模型后,我们需要增加数据库模型;

说一下这个addConnect();这个函数的原型在1.0.3和1.0.4是有区别的。

在1.0.3的原型是:

在1.0.4的原型是:

少了第三个参数。

第一个参数是数据库的配置数组,第二个参数是添加的连接的编号,这个编号在切换数据库连接的时候需要给出是那个序号的连接。注意内置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值