codeigniter会话不存储所有数据

时间:2013-01-24 12:09:35

标签: codeigniter session

我有以下代码:

$session_data = array(
     'user_id' => $user_id,
     'username' => $username,
     'group_id' => $group_id,
     'logged_in' => TRUE
);
$this->session->set_userdata($session_data);

user_id和logged_in完美地存储在db中,但username和group_id存储为“N”。系统的结构是“模块化的”,在我的旧应用程序中,仅仅MVC就可以正常工作。

之前有没有人遇到这个问题,如果你这样做了,你可以提供一些帮助吗?

编辑: 所有N值都是问题,而应该是每个数据的实际值

下面是数据库中的user_data字段

a:5:{s:9:"user_data";

s:0:"";s:7:"user_id";N;

s:8:"username";N;

s:5:"group";N;

s:9:"logged_in";b:1;}

2 个答案:

答案 0 :(得分:0)

您需要在会话中启用保存数据。

  1. 在application / config / config.php中设置您的应用程序以使用数据库来保存会话。
  2. $ config ['sess_use_database'] = TRUE;

    1. 在数据库中创建表格ans也为表格提供相同的名称,因为它在config.php中设置

      CREATE TABLE IF NOT NOT EXISTS ci_sessions(     session_id varchar(40)DEFAULT'0'NOT NULL,     ip_address varchar(45)DEFAULT'0'NOT NULL,     user_agent varchar(120)NOT NULL,     last_activity int(10)unsigned DEFAULT 0 NOT NULL,     user_data text NOT NULL,     PRIMARY KEY(session_id),     KEY last_activity_idxlast_activity) );

    2. 然后,无论何时使用会话,codeigniter都会在数据库上进行中继,您可以根据需要设置“user_data”字段。也许,将序列化数据并保存在“user_data”字段中会很好。

      在php会话或cookie中保存数据有一定的局限性。

答案 1 :(得分:0)

我修好了。这与CI会话库无关,我在数据库查询中出错:(

对由此造成的任何不便表示歉心