看完官方文档
在 config.php
你需要修改
从
$config['sess_driver'] = 'files';
$config['sess_save_path'] = NULL;
至
$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';
以及您需要按名称创建表ci_sessions
,以防万一它不存在。
为了使用“数据库”会话驱动程序,您还必须创建我们已经提到的这个表,然后将其设置为您的$config['sess_save_path']
值。例如,如果你想使用 'ci_sessions' 作为你的表名,你可以这样做:
笔记
如果您从以前版本的 CodeIgniter 升级并且没有配置“sess_save_path”,则 Session 库将查找旧的“sess_table_name”设置并使用它。请不要依赖这种行为,因为它会在未来被删除。
然后,当然,创建数据库表……</p>
对于 MySQL:
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`)
);
对于 PostgreSQL:
CREATE TABLE "ci_sessions" (
"id" varchar(128) NOT NULL,
"ip_address" varchar(45) NOT NULL,
"timestamp" bigint DEFAULT 0 NOT NULL,
"data" text DEFAULT '' NOT NULL
);
CREATE INDEX "ci_sessions_timestamp" ON "ci_sessions" ("timestamp");
您还需要根据“sess_match_ip”设置添加主键。以下示例适用于 MySQL 和 PostgreSQL:
// When sess_match_ip = TRUE
ALTER TABLE ci_sessions ADD PRIMARY KEY (id, ip_address);
// When sess_match_ip = FALSE
ALTER TABLE ci_sessions ADD PRIMARY KEY (id);
// To drop a previously created primary key (use when changing the setting)
ALTER TABLE ci_sessions DROP PRIMARY KEY;