ZF2:如何动态连接到数据库(没有global.php)


ZF2 : How to dynamically connect to database (without global.php)

我的ZF2应用程序必须连接到不同的MSSQL数据库(大约3000!)所以我不能准备所有的连接。(当然,我没有连接到所有的数据库,这取决于用户查询)。

我怎么能在控制器内做到这一点?(只有数据库名称更改,服务器和用户始终相同)

thx

我不建议这样做,但您可以使用pdo/mysqli/。。对象连接到其他数据库。

$dbh=new''PDO('mysql:host=localhost;dbname=test',$user,$pass);

//否则,您可以创建多个服务来访问数据库。

try:

use Zend'Db'Adapter'Adapter;
//...
$driver = array(
        'driver' => 'Pdo',
        'dsn' => 'mysql:dbname=yourdatabasename;host=yourdatabasehost',             
        'username' => 'username',
        'password' => 'password',
);
$adapter = new Adapter($driver);
//insert into database
$adapter->query("insert into foo(bar) values('foo value')",Adapter::QUERY_MODE_EXECUTE);
//select from database        
$result = $adapter->query('select * from foo',Adapter::QUERY_MODE_EXECUTE);
foreach ($result as $item)
    print_r((array)$item);

您可以将此$adapter传递给TableGateway并准备一个表Model(例如YourModule''Model''FooTable)。