Php 当会话数据存储在ci_Sessions表中时获取当前会话id

Php 当会话数据存储在ci_Sessions表中时获取当前会话id,php,codeigniter,session,Php,Codeigniter,Session,我使用ion auth处理对控制器的授权,并将会话数据存储到数据库中。我可以看到会话信息正在存储到数据库中 我是以管理员身份登录的,我需要更新当前会话数据以显示另一个用户已登录,简而言之,我试图通过使用我知道的用户id更新会话用户id来模拟用户 $user = $this->ion_auth->user()->row(); echo "<pre>"; //print_r($res); echo 'Hello '.$user->email; echo

我使用ion auth处理对控制器的授权,并将会话数据存储到数据库中。我可以看到会话信息正在存储到数据库中

我是以管理员身份登录的,我需要更新当前会话数据以显示另一个用户已登录,简而言之,我试图通过使用我知道的用户id更新会话用户id来模拟用户

$user = $this->ion_auth->user()->row();

echo "<pre>";
//print_r($res);
    echo 'Hello  '.$user->email;
echo "</pre>";

    $this->db->order_by('id', 'DESC');
    $this->db->limit(1);
    $last_session = $this->db->get('ci_sessions')->row_array();

    print_r($last_session['data']);//prints current session data
$user=$this->ion\u auth->user()->row();
回声“;
//印刷品(港币);;
回显“你好”。$user->email;
回声“;
$this->db->order_by('id','DESC');
$this->db->limit(1);
$last_session=$this->db->get('ci_sessions')->row_array();
打印($last_session['data'])//打印当前会话数据
第一个回显获取登录用户的正确电子邮件以及正确的会话数据。我的问题是,这行代码是否打印($last_session['data')


即使有多个用户登录,也总是要为我获取会话数据吗?

不幸的是,否。会话数据总是每5分钟更改一次(默认值)。这是在config.php
$config['sess\u time\u to\u update']中设置的。
。此更改仅更新现有会话记录(如果存在),如果不存在,则创建新记录。您可以在system/libraries/Session.php中的Session.php中看到它是如何处理的

它不起作用的另一个原因:ci_sessions表中的id不是一个简单的递增整数,它是这样的:5f53811d120de015d8189d72fcfb0a13242b382a。按id排序将简单地变成随机顺序。最多您可以尝试按“时间戳”而不是id排序


我不确定Jeffrey提到的问题是否发生在ion_auth上。

从逻辑上讲,我想它应该给你一个会话,因为你的会话是最后一个访问脚本的会话。添加$this->load->library('session');我已经自动加载了,在库和驱动程序中。