Armazenar e recuperar uma matriz multidimensional usando php e mysql
-
23-08-2019 - |
Pergunta
Eu tenho uma matriz multidimensional em PHP como este:
$array = array(
"Part1" => array(
"Subpart1" => array(0, 1),
"Subpart2" => array(1, 0)
),
"Part2" => array(0),
"Part3" => array(0, 1, 0)
);
Agora eu quero armazenar essa matriz em uma tabela MySQL e recuperá-lo exatamente como isso de novo em outra página PHP.
Eu tenho tentado usar serialize()
e unserialize()
$array= serialize($array);
e depois na outra página
$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);
Mas eu parecem fazer algo errado, no começo eu tenho um var_dump
de bool (false) e agora eu recebo um var_dump
de NULL .
Solução
Seu código parece ok ...
Uma coisa que pode pegar você é se sua coluna é muito pequeno - se você usar VARCHAR (255) seus dados podem ser truncados e não vai unserialize. Se você adicionar o valor de $row['Array']
eu poderia ver se ele é todo.
Outras dicas
Use tipo de coluna TEXT. dados serializados muitas vezes não se encaixam VARCHAR (255).
Você pode usar codificar json, json_encode ($ array), e você obterá um valor de string em notação JSON assim que você pode armazenar no banco de dados e retrive e fazer um json_decode ($ string, true) para que você cand converter em uma matriz novamente. Se você não passar o verdadeiro argumento para o json_decode, será convertido para um stdClass.
Esta é minha mesa no php / html. Eu preciso armazenar e recuperar o php Particulares (p), Quantidade (q), Taxa de (r) como um formato de tabela em separado