PHP会话-从数据库中存储的会话获取用户名
由于将会话处理移到数据库中,所以$\u会话数组似乎不包含任何值,我认为一旦实现移到DB中,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
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
)