2012-06-05 50 views
2

我的zend应用程序使用多个数据库连接,所以我使用multidb资源在application.ini文件中配置多个连接。zend:使用multidb时将会话存储在数据库中

现在我想将应用程序会话存储到数据库中,使用Zend_Session_SaveHandler_DbTable,但我找不到指定使用哪些连接来访问数据库的方法。

每一个例子我在网上找到使用db资源,并依赖默认的数据库适配器上。不幸的是,会议必须被存储在数据库中是不是默认的一个...

我如何指定要用于存储会话哪个分贝?

回答

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配置文件中specfy这些设置,但...

+0

这是什么,然后http://framework.zend.com/manual/en/zend.session。 savehandler.dbtable.html? – Venu

+0

@Venu:你可以告诉我在哪里,在这个文档页面上,明确写出该键应该被命名为'db',并且该值是连接对象? (有一个不起眼的评论:'//或者你可以直接传递到保存handler'不知道如何实现这一目标的数据库连接) –

+0

道歉的!是的,我同意它不是很清楚,但他们提到了它。 – Venu

相关问题