gpt4 book ai didi

php - 从主数据库获取数据库凭据,然后连接到不同的数据库

转载 作者:可可西里 更新时间:2023-11-01 07:06:13 25 4
gpt4 key购买 nike

我有一个实例化 Web 应用程序,它为每个实例使用不同的数据库,但使用相同的文件。

我希望我的应用程序在启动时执行的操作:

  1. 从主实例表中获取数据库凭据。此实例表位于我在 app/config/database.php 中定义的默认“mysql”连接中。
  2. 从那时起连接到实例数据库(我不再需要主实例数据库了)

我曾尝试在我的 App:before() 事件中执行此操作,但那行不通,因为我的主数据库中没有 session 表。如果我在 database.php 中的 return array() 之前执行此操作,它显然无法连接,因为它还没有正确的主数据库凭据。

我应该在哪里做这个?我应该只禁用 session 并在我的 App::before() 中执行它,然后在之后启用 session 吗?

最佳答案

不认为这是可能的,但这是一种可能性。

读/写连接

有时您可能希望为 SELECT 语句使用一个数据库连接,为 INSERTUPDATEDELETE< 使用另一个数据库连接语句。 Laravel 使这变得轻而易举,无论您使用的是原始查询、查询构建器还是 Eloquent ORM,都将始终使用正确的连接。

要了解应该如何配置读/写连接,让我们看一下这个例子:

'mysql' => array(
'read' => array(
'host' => '192.168.1.1',
),
'write' => array(
'host' => '196.168.1.2'
),
'driver' => 'mysql',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

请注意,配置数组中添加了两个键:read 和 write。这两个键都有包含一个键的数组值:主机。读取和写入连接的其余数据库选项将从主 mysql 数组合并。因此,如果我们希望覆盖主数组中的值,我们只需要将项目放在读写数组中。因此,在这种情况下,192.168.1.1 将用作“读取”连接,而 192.168.1.2 将用作“写入”连接。主 mysql 数组中的数据库凭据、前缀、字符集和所有其他选项将在两个连接之间共享。

关于php - 从主数据库获取数据库凭据,然后连接到不同的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29844639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com