在Apache::Sessions:MySQL会话中存储一个复杂的哈希



因此,我试图将解码的JSON对象存储到绑定的apache会话中。这是我的代码:

$url="https://apilink";
$content = get($url);
die "Can't Get $url" if (! defined $content);
$jsonOb = decode_json($content);
%aprecords = %$jsonOb;
#Push the jsonOb in the session
$session{apirecords} = %aprecords ;

$session{apirecords}不存储%aprecords引用。尽管,当我将语句替换为$session{apirecords} = %jsonOb ;时,它将apirecords存储在会话表中,但对%jsonOb的引用中没有值。

PS:我试过以下几种,但似乎都不起作用:1($session{apirecords} = %$jsonOb ;2($session{apirecords} = { %aprecords } ;

JSON对象的结构非常好。

绑定会话的代码:

tie %session, "Apache::Session::MySQL", $sessionID, 
{
Handle => $dbObject,
LockHandle => $dbObject,
TableName => 'sessions',
};
#If a session ID doesn't exist, create a new session and get new session ID
if (!defined ($sessionID)){
$sessionID = $session{_session_id};
$session{count}=0;
}

伸出援手将不胜感激!

JSON示例:https://jsonblob.com/feed3bba-f1cd-11e8-9450-2904e8ecf943

正如GMB所指出的。blob大小(64 KB(对于JSON对象来说不够大。解决方案是将blob数据类型更改为mediumblob

相关内容

最新更新