gpt4 book ai didi

database - YII 从数据库中检索 session

转载 作者:搜寻专家 更新时间:2023-10-30 20:10:21 25 4
gpt4 key购买 nike

我正在使用 mysql 数据库来存储用户 session 数据。我将用户重定向到另一个服务器,并将 session ID 作为变量 (GET),然后我需要使用该 ID 从数据库中检索 session 。

在我的远程服务器中使用的代码:

  Yii::app()->session->sessionID = $sessionID;
Yii::app()->session->open();

结果是 session 被无数据覆盖(新 session 打开)。我如何从数据库中检索 session ?我需要为表创建模型还是可以使用 YII session 功能?

谢谢,丹尼

最佳答案

由于 CDbHttpSession,您不必为 session 表创建模型依赖 PDO 访问数据库

session 组件的配置是什么?

您指定 session ID 并通过调用 open() 手动启动 session 方法。此方法sets session callback methods使用 PHP 的 session_set_save_handler功能。 readSession($id)就在其中,根据 session_set_save_handler 的手册页:

This callback is called internally by PHP when the session starts or when session_start() is called.

由于session_start 创建 session 或恢复当前 session 在设置 session 标识符之前,您必须同意该 session 不会自动启动。 autoStart Yii session 实例的属性对此负责,必须设置为 false(默认为 true)。

也是一个标识符 connectionID必须指定用于检索 session 数据的数据库连接。这很重要,否则:

If not set, a SQLite database will be automatically created and used.

牢记这一切,我想您的 session 组件的配置必须如下所示:

'session' => array(
'class' => 'CDbHttpSession',
'autoStart' => false,
'connectionID' => 'db',
'sessionTableName' => 'your_session_table_name',
'autoCreateSessionTable' => false // for performance reasons
)

关于database - YII 从数据库中检索 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17157252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com