Сохраните сложный хеш в Apache :: Sessions: MySQL session - PullRequest
0 голосов
/ 26 ноября 2018

Итак, я пытаюсь сохранить декодированный объект 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

1 Ответ

0 голосов
/ 30 ноября 2018

Как указано GMB.Размер BLOB-объекта (64 КБ) недостаточно велик для объекта JSON.Решение состоит в том, чтобы изменить blob тип данных на mediumblob.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...