Codeigniter会话 - 从DB访问所有用户的Userdata值

时间:2013-02-16 05:57:27

标签: php codeigniter session

我正在使用Codeigniter的Session类在数据库中存储会话值。 userdata字段中包含用户的用户名和其他值。

我想从username所在的每个userdata字段中获取lastactivity =让我们说5分钟。

我能想到实现这一目标的唯一方法是:

  • 搜索最近5分钟内有效的用户
  • 获取返回的每行的用户数据
  • unserialise userdata
  • 提取用户名

然而,这似乎还有很长的路要走。有更干净/更好的方法吗?

1 个答案:

答案 0 :(得分:1)

试试这段代码。

$query = $this->db->select('user_data')->get('ci_sessions');

$user = array(); /* array to store the user data we fetch */

foreach ($query->result() as $row)
{
    $udata = unserialize($row->user_data);

    /* put data in array using username as key */
    $user[$udata['user_name']] = $udata['user_role']; 
}

从结果数组中,你可以获取所需的信息。