多数据源

多数据源配置


可以在项目里配置多个数据源

  1. class AppInit implements Init{
  2. public function appInit(AutoFindHandlerMapping $autoMapping, Router $router){
  3. Ioc::bind('mydb2',MySqlConnection::class,function(MySqlConnection $connection){
  4. //这里可以直接从 config 获取
  5. $connection->config([
  6. 'dsn'=>"mysql:dbname=xxxx;host=127.0.0.1;charset=utf8",
  7. 'username'=>"root",
  8. 'password'=>"root"
  9. ]);
  10. });
  11. }

使用

  1. //使用第二个数据源
  2. Context::useConnection('mydb2');
  3. $id=DB::insert('user',$connection)->set('name','tengzhinei')->set('age',12)->excuse();
  4. //切换为默认的数据源
  5. Context::useConnection();
  6. //切换为第二个数据源,并切换到 test scheme
  7. Context::useConnection('mydb2','test');
  8. //现在切换到test1的 scheme
  9. Context::useConnectionScheme('test1');
请勿直接从 Ioc::get(Connection::class) Connection是由连接池管理的 Ioc里获取会出问题

上一篇:返回类型   下一篇:Record模型