Codeigniter不会在数据库中保存会话

时间:2018-05-24 16:31:46

标签: codeigniter session

在config.php中

$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';
$config['sess_cookie_name'] = 'cookiename';
$config['sess_expiration'] = 7200;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
//$config['sess_driver'] = 'files';
//$config['sess_save_path'] = BASEPATH . 'cache/sessions/';

表:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `id` VARCHAR(128) NOT NULL,
    `ip_address` VARCHAR(45) NOT NULL,
    `timestamp` INT(10) UNSIGNED DEFAULT 0 NOT NULL,
    `data` BLOB NOT NULL,
    KEY `ci_sessions_timestamp` (`timestamp`)
);

这不会保存数据库中的会话,并且API不会返回任何响应。如果我将其更改为文件,它可以正常工作。

[更新]

现在我收到了这个错误:

Exception: Configured database connection is persistent. Aborting. /var/app/current/system/
libraries/Session/drivers/Session_database_driver.php 94

1 个答案:

答案 0 :(得分:1)

考虑你的dbprefix配置。

如果它是'isci_',那么您的会话表的名称应为'isci_sessions'sess_save_path的名称相同。

此外,您应该将数据库pconnect配置更改为FALSE以修复上一个问题。