【问题标题】:Codeigniter Session - Access Userdata value for all users from DBCodeigniter 会话 - 访问数据库中所有用户的用户数据值
【发布时间】:2015-02-21 14:07:27
【问题描述】:

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

我想从lastactivity 所在的每个userdata 字段中获取username >= 假设5 分钟。

我能想到的唯一方法是:

  • 搜索过去 5 分钟内活跃的用户
  • 获取返回的每一行的用户数据
  • 反序列化用户数据
  • 提取用户名

然而,这似乎是一个漫长的过程。有没有更清洁/更好的方法来做到这一点?

【问题讨论】:

  • 您是否要将数据库中 lastactivity > x 的所有用户名等数据存储到 CI Session 中?
  • 数据库中的 userdata 字段将包含几个不同的值,我只需要提取其中一个。

标签: php codeigniter session


【解决方案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']; 
}

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

【讨论】:

  • 这与我列出的解决方案相同,并说我尽可能避免。我意识到这可能是必要的,但只是作为最后的手段。
猜你喜欢
  • 2016-10-06
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多