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

时间:2015-12-07 12:07:49

标签: php arrays json

由于将会话处理移动到数据库,因此$ _SESSION数组似乎不包含任何值,我认为一旦将实现移动到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”的价值。我应该如何解析返回的结果?

我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

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将生成以下类型的输出(输出将基于字段):

Array
(
    [id] => 3fgg67bbsd77bVVgh
    [0] => 3fgg67bbsd77bVVgh
    [access] => 14567893546  
    [1] => 14567893546 
    [luser] => Marke
    [2] => Marke
)