Archivia e recupera un array multidimensionale utilizzando php e mysql
-
23-08-2019 - |
Domanda
Ho un array multidimensionale in PHP come questo:
$array = array(
"Part1" => array(
"Subpart1" => array(0, 1),
"Subpart2" => array(1, 0)
),
"Part2" => array(0),
"Part3" => array(0, 1, 0)
);
Ora voglio memorizzare questo array in una tabella MySQL e recuperarlo di nuovo esattamente in questo modo su un'altra pagina PHP.
Ho provato a usare serialize()
E unserialize()
$array= serialize($array);
e poi nell'altra pagina
$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);
Ma mi sembra di fare qualcosa di sbagliato, all'inizio ho avuto un var_dump
Di bool(falso) e ora ottengo un var_dump
Di NULLO.
Soluzione
Il tuo codice sembra ok ...
Una cosa che può prendere fuori è che se la vostra colonna è troppo piccola - se si utilizza VARCHAR (255) i dati possono essere troncati e non unserialize. Se si aggiunge il valore di $row['Array']
ho potuto vedere se è complesso.
Altri suggerimenti
Utilizzare tipo di colonna TEXT. dati serializzati, spesso non si adatta VARCHAR (255).
Si potrebbe utilizzare JSON codificare, json_encode ($ array) e si otterrà un valore stringa in notazione JSON modo da poter memorizzare nel database, e retrive e fare un json_decode ($ string, true) in modo da cand convertire in un array ancora. Se non si passa il vero argomento al json_decode, sarà convertito in uno stdClass.
Questa è la mia tabella in php/html.Devo archiviare e recuperare php Particulars(p),Quantity(q),Rate(r) come formato di tabella separato