我的zend应用程序使用多个数据库连接,因此我使用multidb
资源在application.ini
文件中配置多个连接。
现在我想使用Zend_Session_SaveHandler_DbTable
将应用程序会话存储到数据库中,但是我找不到一种方法来指定使用哪些连接来访问数据库。
我在网上找到的每个示例都使用db
资源,并依赖于默认的数据库适配器。不幸的是,会话必须存储在一个不是默认数据库的数据库中......
如何指定用于存储会话的数据库?
答案 0 :(得分:3)
虽然Zend文档中没有指定,但Zend_Session_SaveHandler_DbTable
类的构造函数接受名为db
的参数,该参数指定要使用的数据库连接。
$db = $this->getPluginResource('multidb')->getDb('zend');
$config = array(
'db' => $db,
'name' => 'session',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime'
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::start();
我无法在application.ini
配置文件中指定这些设置,但是......