Database ZF3中的多个DB连接
当我使用ZF1时,我有一个带有db连接信息的ini文件(即mysql、pgsql、mssql等) 在我的模型中,我将扩展Zend_Db_表,并在我的Database ZF3中的多个DB连接,database,zend-framework3,Database,Zend Framework3,当我使用ZF1时,我有一个带有db连接信息的ini文件(即mysql、pgsql、mssql等) 在我的模型中,我将扩展Zend_Db_表,并在我的 public function _construct() { $dbconfig = Zend_Registry::get('dbProfiles'); $this->db = Zend_Db::factory($dbconfig->modulename->adapter, $dbc
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',
]
]
],
然后在service manager工厂中调用适配器以创建tablegateway,或者将适配器传递给控制器:
use \Application\Db\Db1Adapter;
...
$db1Adapter = $container->get(Db1Adapter::class);
...
use \Application\Db\Db1Adapter;
...
$db1Adapter = $container->get(Db1Adapter::class);
...