PHP会话-从数据库中存储的会话获取用户名

PHP会话-从数据库中存储的会话获取用户名,php,arrays,json,Php,Arrays,Json,由于将会话处理移到数据库中,所以$\u会话数组似乎不包含任何值,我认为一旦实现移到DB中,PHP中的会话行为就是这样 这让我现在很头疼。我无法通过数据库中存储的详细信息访问登录用户的用户名 下面是我从数据库中检索用户详细信息的函数的实现 public function getUser($id, $db) { $dbobj->query("SELECT * FROM SESSION WHERE id = $id); $result = $dbo

由于将会话处理移到数据库中,所以$\u会话数组似乎不包含任何值,我认为一旦实现移到DB中,PHP中的会话行为就是这样

这让我现在很头疼。我无法通过数据库中存储的详细信息访问登录用户的用户名

下面是我从数据库中检索用户详细信息的函数的实现

      public function getUser($id, $db) {
        $dbobj->query("SELECT *  FROM SESSION  WHERE id = $id);
        $result = $dbobj->res();
            return $result['data']['use'];
      }
$result
保存以下格式的值

array(1) (
[0 => array(3) (
[id => (string) 3fgg67bbsd77bVVgh
[access => (string) 14567893546
[data => (string) luser|s:5"Marke";
)
)
我想
$temp
保存值“Marke”。我应该如何解析返回的resultest

非常感谢您的帮助。

resultset()
函数可能不存在

因此,您可以使用以下代码:

public function getSessionUserName($id, $dbobj) {
    $lcid = $id;

    $dbobj->query("SELECT *  FROM SESSION  WHERE id = :sessid");
    $dbobj->bind(':sessid', $lcid);

    // execute query 
    $dbobj->execute();
    // Commented this line
    //$result = $dbobj->resultset();

    // Use fetch() method 
    $result = $dbobj->fetch();

    if ($result) {
        //$temp= $result['data']['luser'];
         $temp= $result['luser']
        return $temp;
    }

 }  
$result
将生成以下类型的输出(输出将基于字段):


您所说的实现转移到DB是什么意思。您是否正在使用任何框架。?您好Tintu-没有涉及框架。会话处理通常在内存中进行,对吗?相反,我覆盖了默认实现,将会话详细信息保存在数据库中。您能帮我分析返回的数组吗?用户数据是序列化的,但序列化的方式与
serialize()
略有不同。您的框架/库可能具有执行序列化和非序列化的函数。谢谢。这对我其他地方也有帮助。谢谢你的帮助。
Array
(
    [id] => 3fgg67bbsd77bVVgh
    [0] => 3fgg67bbsd77bVVgh
    [access] => 14567893546  
    [1] => 14567893546 
    [luser] => Marke
    [2] => Marke
)