我的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)。