Speichern und Abrufen ein mehrdimensionales Array mit PHP und mysql
-
23-08-2019 - |
Frage
Ich habe ein mehrdimensionales Array in PHP wie folgt aus:
$array = array(
"Part1" => array(
"Subpart1" => array(0, 1),
"Subpart2" => array(1, 0)
),
"Part2" => array(0),
"Part3" => array(0, 1, 0)
);
Jetzt möchte ich in einer MySQL-Tabelle dieses Array speichern und abzurufen es genau so wieder auf einer anderen PHP-Seite.
Ich habe versucht, mit serialize()
und unserialize()
$array= serialize($array);
und dann auf der anderen Seite
$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);
Aber ich scheine etwas falsch zu machen, am Anfang habe ich eine var_dump
von bool (false) und jetzt bekomme ich eine var_dump
von NULL .
Lösung
Ihr Code sieht ok ...
Eine Sache, die man fangen kann aus ist, wenn Ihre Spalte zu klein ist - wenn Sie verwenden VARCHAR (255), um Ihre Daten abgeschnitten werden kann und nicht deserialisieren. Wenn Sie den Wert von $row['Array']
hinzufügen konnte ich sehen, ob es ganz ist.
Andere Tipps
Spaltentyp Text. Serialisierten Daten oft nicht passen VARCHAR (255).
Sie könnten json kodieren, json_encode ($ array) und Sie werden einen String-Wert in json Schreibweise erhalten, so dass Sie in der Datenbank speichern kann, und retrive und eine json_decode ($ string, true) tun, damit Sie cand in ein Array umwandeln nochmal. Wenn Sie nicht das wahre Argument der json_decode passieren zu tun, um es zu einem stdClass umgewandelt wird.
Das ist meine Tabelle in php / html. Ich brauche die PHP-Angaben (p), Menge (q), Rate (r) als separates Tabellenformat
zum Speichern und Abrufen