sinaapp上无法使用kndb session
CI version:2.0.3Environment:sina app engine (mysql+php+apache)
解决了SAE的mysql数据库连接问题后,我又遇到了第二个问题,我在本地使用我的博客程序时,本地wamp是用KNDB的。但sinaapp在执行我的程序时,使用了CI自带的Session类库,而没有使用KNDB Session。
错误显示如下:
A Database Error Occurred
Error Number: 1054
Unknown column 'ip_address' in 'field list'
INSERT INTO `sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`) VALUES (具体值略)
Filename: libraries/Session.php
Line Number: 327
通过错误提示的行为方式可知,它使用了自带Session的方法,向数据库插入(`session_id`, `ip_address`, `user_agent`, `last_activity`) ,而我没有建立这样的字段,自然失败了。
我的config.php
$config['sess_cookie_name']= 'ci_session';
$config['sess_expiration']= 1800;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name']= 'sessions';
$config['sess_match_ip']= TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
为什么会发生这种事,如何解决?
{:soso_e117:}那你倒是把表建对呀 jeongee 发表于 2011-11-6 16:54 static/image/common/back.gif
那你倒是把表建对呀
版主,我要用的是KNDB的session,它的那套方法不需要建立这些字段就可以工作啊(我在本地用的好好的)。。我要是建了这些字段通过了,不就使用自带的session了吗?KNDB比自带的session到底有哪些好处?版主请大力拍砖~ $config['sess_use_database'] = TRUE;
这么清楚的配置项,你设置了数据库来保存session状态,php当然就会到数据库里面查表了。
ci的手册说的很明白,ci不用php自带的session而是自己实现了一套,如果你不用数据库保存session的话,CI_Session的信息就全部保存到客户端cookie,当然是加密过的。 五点晨曦 发表于 2011-11-7 07:04 static/image/common/back.gif
$config['sess_use_database'] = TRUE;
这么清楚的配置项,你设置了数据库来保存session状态,php当然就会 ...
顶一个!
但是楼主的问题是否解决了呢?回复下呗 CI 自带的 Session 肯定和 KNDB Session 不一样,所以不能互换使用。
建议楼主只选择一种 Session 类库,而不要换来换去的,这样肯定会有问题。 Hex 发表于 2011-11-7 12:05 static/image/common/back.gif
CI 自带的 Session 肯定和 KNDB Session 不一样,所以不能互换使用。
建议楼主只选择一种 Session 类库,而 ...
我不想使用自带的Session类库啊,我一向是使用KNDB的。是传到服务器上去不知道服务器怎么的就使用了自带的Session类库,我没有修改任何代码,本地和服务器端就是两种表现。。。
确认一下,使用KNDB的Session类库是不是在application/libraries目录下放置KNDB的session.php,然后在autoload.php文件中加入$autoload['libraries'] = array('database','session');?我是参考《kndb session 用法简介》http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=1757和一哈子的视频方法做的。
现在问题是服务器端“自作主张”使用了自带的Session类库而没有使用KNDB,而我没办法。。。 代码都是一样的,那就是服务器环境问题,你要确定代码是一模一样的才行。 haoren26 发表于 2011-11-7 17:45 static/image/common/back.gif
我不想使用自带的Session类库啊,我一向是使用KNDB的。是传到服务器上去不知道服务器怎么的就使用了自带 ...
肯定是什么地方加载了原生的session类库,你把原生的session类库删了,看看报错信息是哪个文件引用了它,要是删了还能用那就见鬼了 五点晨曦 发表于 2011-11-9 00:56 static/image/common/back.gif
肯定是什么地方加载了原生的session类库,你把原生的session类库删了,看看报错信息是哪个文件引用了它, ...
如果在autoload.php文件里设置了$autoload['libraries'] = array('database','session');那么如果application/libraries目录下和system/libraries目录下都有名为Session.php,会不会有优先级?是以application优先吗?
你是意思是把system/libraries目录下的Session.php删了吗?我曾经直接用KNDB的全部代码替换system/libraries目录下的Session.php代码,结果得到很多Mysql连接的错误,错误原因集中在端口号错误,CI没有按照database中的设置(SAE_MYSQL_PORT)而是用了默认的3306端口
页:
[1]