2

我的 zend 应用程序使用多个数据库连接,因此我使用该multidb资源在application.ini文件中配置了多个连接。

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

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

如何指定用于存储会话的数据库?

4

1 回答 1

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

于 2012-06-05T12:47:15.623 回答