由于将会话处理移动到数据库,因此$ _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”的价值。我应该如何解析返回的结果?
我很感激你的帮助。
答案 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
)