Codeigniter 3.0 会话表名称为空字符串,因此出现错误
Posted
技术标签:
【中文标题】Codeigniter 3.0 会话表名称为空字符串,因此出现错误【英文标题】:Codeigniter 3.0 session table name is empty string, hence getting error 【发布时间】:2015-10-20 06:36:24 【问题描述】:这是一个奇怪的场景,根据 codeigniter 文档,我们可以将会话数据保存在文件或数据库中,现在使用它们的配置这些是我在 config.php
文件上的设置
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_sessions'; // cookie name
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions'; // table name
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
现在会话表在本地服务器上运行没有任何问题,但是在实时服务器上运行时,它显示此错误
更新集
last_activity
= 1438164724,user_data
= 'a:2:s:6:\"data\";s:6:\"value\";s:9:\"data_1\" ;s:15:\"value_1\";' WHEREsession_id
= 'a0b6651bab02fda101ee10c11dee9979'
我们可以清楚地看到会话表名称是空白的,现在有没有办法找出为什么它是空白的,因为我们在本地服务器和实时服务器中使用相同的设置
【问题讨论】:
表示你没有在live server上创建表 @Abdulla 嗨,实时服务器上有一张桌子,此外,我刚刚测试了 $config['sess_save_path'] = '';将此行作为空值,并且弹出相同的错误,也许是一些错误? 检查我的答案$config['sess_table_name']
只包含表名
@Abdulla 实际上我使用的是 ci 3.0,您提供的代码来自 2.*
【参考方案1】:
确保 Session 库已加载。
$this->load->library('session');
创建表
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (id),
KEY `ci_sessions_timestamp` (`timestamp`)
);
或未提供给 Codeigniter 的表详细信息。
More About CI Session
【讨论】:
是否有记录查询或表名以便我可以看到发生了什么?是的,会话库是自动加载的,我在实时服务器中也有表:)【参考方案2】:这里没有session_table_name
。因此,您可以检查以下内容,
请确保您的会话库已加载。还要检查,$this->sess_table_name
是否设置正确?请再次检查实时服务器中的配置文件
$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';
详情请查看此链接http://www.codeigniter.com/user_guide/libraries/sessions.html#database-driver
您也可以查看与您的问题相关的1064 error with CodeIgniter in ci_sessions table这个帖子。希望您能得到解决。
【讨论】:
我收到此错误 Undefined property: CI_Loader::$sess_table_name 当我使用会话闪存数据时它工作正常,这意味着会话库已加载并且工作 看看这篇文章,会有帮助的***.com/questions/30086348/…以上是关于Codeigniter 3.0 会话表名称为空字符串,因此出现错误的主要内容,如果未能解决你的问题,请参考以下文章