在apache中存储复杂哈希:sessions:mysql session

p8ekf7hl  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(271)

所以,我尝试将解码的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的引用中没有值。
附言:我试过以下方法,但似乎都不管用: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
x6492ojm

x6492ojm1#

正如gmb所指出的。blob大小(64 kb)对于json对象来说不够大。解决办法是改变 blob 数据类型到 mediumblob .

相关问题