gpt4 book ai didi

PHP单一连接多个数据库的方法

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:19 26 4
gpt4 key购买 nike

我的问题是下面的代码如何使用单一方法连接到多个数据库?

配置设置数组:

$GLOBALS['config'] = array(
'mysql' => array(
'host' => '127.0.0.1',
'username' => 'root',
'password' => '',
'db' => array(
'db1' => 'database1',
'db2' => 'database2'
)
)

连接到数据库:

private function __construct() {
try {
$this->_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db/db1'), Config::get('mysql/username'), Config::get('mysql/password'));
} catch(PDOException $e) {
die($e->getMessage());
}
}

因此,不要将 db1 硬编码到连接中:

dbname=' . Config::get('mysql/db/db1')

如何不在这里指定一个特定的数据库,但允许以后调用一个?我正在尝试制作一个可重用的类,它可以连接到添加到配置数组的任何数据库。

最佳答案

您可以创建多个 pdo 连接:

private function __construct() {
try {
$this->_pdo1 = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db/db1'), Config::get('mysql/username'), Config::get('mysql/password'));
$this->_pdo2 = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db/db2'), Config::get('mysql/username'), Config::get('mysql/password'));
} catch(PDOException $e) {
die($e->getMessage());
}
}

这对于分片来说非常好,因为不同的架构可能会变成不同的服务器。

关于PHP单一连接多个数据库的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29753749/

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