在数据库中存储会话时的错误(Yii 1)


Bug when storing sessions in the database (Yii 1)

我在 yii 1 上有项目,当我使用 DB 保存会话时,我收到了错误。对于数据库中站点的每个查询,都会创建一个新条目。我不知道为什么。因此,我无法从会话中获取变量,因为在 refrtsh 页面之后,我在 db 中有一个新条目。我做错了什么?桌子:

CREATE TABLE `wo_yiisession` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`expire` INT(11) NOT NULL,
`data` TEXT NOT NULL,
PRIMARY KEY (`id`),
INDEX `expire_idx` (`expire`)

)COLLATE='utf8_general_ci'引擎=InnoDB

会话组件设置:

'session' => array(
        'class' => 'CDbHttpSession',
        'connectionID' => 'db',
        'sessionTableName' => 'wo_yiisession',
        'timeout' => 3600 * 24 * 30,
        'autoStart' => 'false',
        'cookieMode' => 'only',
    ),

看起来您的 ID 字段类型错误。建议的表结构为:

CREATE TABLE YiiSession
(
    id CHAR(32) PRIMARY KEY,
    expire INTEGER,
    data BLOB
)

参见 CDbHttpSession