gpt4 book ai didi

database - ZF3 中的多个数据库连接

转载 作者:搜寻专家 更新时间:2023-10-30 22:27:39 24 4
gpt4 key购买 nike

当我使用 ZF1 时,我有一个包含数据库连接信息(即 mysql、pgsql、mssql 等...)的 ini 文件

modulename.adapter = PDO_MYSQL
modulename.params.host = xxx.xxx.x.xx
modulename.params.username = username
modulename.params.password = password
modulename.params.dbname = databasename

在我的模型中,我会扩展 Zend_Db_Table 并在我的

中执行以下操作
public function _construct() {
$dbconfig = Zend_Registry::get('dbProfiles');
$this->db = Zend_Db::factory($dbconfig->modulename->adapter,
$dbconfig->modulename->params);
}

在某些函数中,我有以下代码

$sql = "SELECT * FROM Table";
$result = $this->db->query($sql);
while($row =$result->fetch()) {
//... do something
}

我怎样才能在 ZF3 中做类似的事情?连接多种数据库类型、查询不同的表并获取我的结果?

谢谢。

最佳答案

在您的配置中设置与您拥有的数据库一样多的数据库适配器:

    'db'    => [
'adapters' => [
'Application\Db\Db1Adapter' => [
'driver' => 'Pdo_Mysql',
'Dsn' => 'mysql:dbname=Your_db_1_name;host=your_host;charset=utf8',
'password' => 'your_password',
'username' => 'your_username',

],

'Application\Db\Db2Adapter' => [
'driver' => 'Pdo_Mysql',
'Dsn' => 'mysql:dbname=Your_db_2_name;host=your_host;charset=utf8',
'password' => 'your_password',
'username' => 'your_username',


]
]
],

然后调用服务管理器工厂中的适配器来创建表网关或将适配器传递给 Controller ​​:

use \Application\Db\Db1Adapter;
...
$db1Adapter = $container->get(Db1Adapter::class);
...

关于database - ZF3 中的多个数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140359/

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