Best Practice: Relationale Datenspeicherung und Verarbeitung von PHP-Arrays
Das Speichern eines Arrays innerhalb eines einzelnen MySQL-Felds wird im Allgemeinen nicht empfohlen. Stattdessen empfiehlt es sich, Ihr Datenmodell zu analysieren und entsprechend umzustrukturieren. Wenn Sie jedoch ein Array in einem einzelnen Feld speichern müssen, ziehen Sie die folgenden Optionen in Betracht:
Serialisierung und Unserialisierung:
Verwendung von serialize() und unserialize() PHP Funktionen können ein Array in einen String umwandeln, der dann im MySQL-Feld gespeichert werden kann. Sie können jedoch keine Abfragen für den spezifischen Inhalt innerhalb des Arrays durchführen.
JSON-Kodierung und -Dekodierung:
Alternativ können Sie json_encode() verwenden. und json_decode()-Funktionen. Diese Funktionen bieten einen moderneren und strukturierteren Ansatz zum Serialisieren und Deserialisieren von Daten.
Beachten Sie die folgende Anordnung:
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), );
Für eine optimale Datenbankspeicherung und -manipulation sollten Sie Ihr Datenmodell neu strukturieren. Erstellen Sie eine Tabelle mit separaten Spalten für jedes Schlüssel-Wert-Paar im Array, z. B.:
DROP TABLE IF EXISTS test; CREATE TABLE test ( id INTEGER UNSIGNED NOT NULL, a INTEGER UNSIGNED NOT NULL, b INTEGER UNSIGNED NOT NULL, c INTEGER UNSIGNED NOT NULL, PRIMARY KEY (id) );
Sie können PHP-Funktionen verwenden, um mit der Datenbank zu interagieren:
// Connect to the database $c = mysql_connect($server, $username, $password); mysql_select_db('test'); // Example functions to interact with the database function getTest() { $ret = array(); $query = 'SELECT * FROM test'; $r = mysql_query($query,$c); while ($o = mysql_fetch_array($r,MYSQL_ASSOC)) { $ret[array_shift($o)] = $o; } mysql_close($c); return $ret; } function putTest($t) { foreach ($t as $k => $v) { $query = "INSERT INTO test (id,". implode(',',array_keys($v)). ") VALUES ($k,". implode(',',$v). ")"; $r = mysql_query($query,$c); } mysql_close($c); } // Insert the array into the database putTest($a); // Retrieve the data from the database $b = getTest();
Durch Übernahme Mit einem relationalen Datenmodell können Sie eine effiziente Speicherung, Abfrage und Bearbeitung Ihrer Daten sicherstellen.
Das obige ist der detaillierte Inhalt vonWie soll ich PHP-Arrays in einer relationalen Datenbank speichern und verwalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!