phalapi 数据库锁_2.5 PhalApi 连接多个数据库

在其他情况下,项目需要连接多个数据库也是常见的需求。解决方案可以有多种,简单的方案,可以通过配置直接实现,但有一定局限性。复杂的方案,能解决更多应用场景遇到的问题并能更好满足约束限制。

这一章,将带你开启一段组合爆炸的神奇旅程。但本质就看实际有多少个数据库,以及最终有多少个NotORM实例。请记住这个经验法则:

一个数据库,对应一个NotORM实例;但一个NotORM实例可以对应多个数据库。

首先,通过./config/dbs.php的简单配置,就能实现连接多个数据库。

假设我们有两个数据库:第一个数据库:db_1

第二个数据库:db_1

假设都是MySQL数据库,按前面介绍的格式,则可以在./config/dbs.php文件中配置:

return array(

/**

* DB数据库服务器集群

*/

'servers' => array(

// 第一个数据库

'db_master' => array( //服务器标记

'host' => '127.0.0.1', //数据库域名

'name' => 'db_1', //数据库名字

'user' => 'root', //数据库用户名

'password' => '', //数据库密码

'port' => 3306, //数据库端口

'charset' => 'UTF8', //数据库字符集

),

// 第二个数据库

'db_other' => array( //服务器标记

'host' => '192.168.1.100', //数据库域名

'name' => 'db_2', //数据库名字

'user' => 'root', //数据库用户名

'password' => '', //数据库密码

'port' => 3306, //数据库端口

'charset' => 'UTF8', //数据库字符集

),

),

// 略……

第二步,再继续配置,不同的数据库表使用哪个数据库。参考分表配置的格式,只是这里是一个极端,即全部的分表只都有一张表,可以这样配置:

'tables' => array(

// 库表:db_1.user

'user' => array(

'prefix' => 'tbl_',

'key' => 'id',

'map' => array(

array('db' => 'db_master'),

),

),

// 库表:db_2.log

'log' => array(

'prefix' => 'tbl_',

'key' => 'id',

'map' => array(

array('db' => 'db_other'),

),

),

),

上面配置,分别配置了user用户表用db_1,log日志表用db_2。其他依此类推。

最后,在Model层编写的代码和平时一样即可。

namespace App\Model;

use PhalApi\Model\NotORMModel as NotORM;

class User extends NotORM {

public function count() {

// user表查db_1

return $this->getORM()->count();

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值