PHP-Arrays in MySQL speichern und abrufen
Frage:
Wie können Sie ein effektiv speichern und abrufen? Array von Daten in einem einzelnen MySQL-Feld?
Antwort:
Speichern von Array-Daten:
Speichern eines Arrays in einem einzelnen MySQL-Feld ist nicht ratsam, da es die relationale Datenintegrität gefährdet. Es wird empfohlen, Ihr Schema an die Array-Daten anzupassen.
Serialisierung und Unserialisierung verwenden:
Wenn Sie das Array in einem einzelnen Feld speichern müssen, können Sie es verwenden die Funktionen serialize() und unserialize(). Dieser Ansatz schränkt jedoch Ihre Fähigkeit ein, direkte Abfragen für das gespeicherte Array durchzuführen.
JSON-Kodierung und -Dekodierung:
Alternativ können Sie die Verwendung von json_encode() und json_decode in Betracht ziehen () zum Speichern und Abrufen von Array-Daten. Mit dieser Methode können JSON-formatierte Daten in einem Textfeld gespeichert und zurück in ein Array-Format konvertiert werden.
Beispiel für eine relationale Schemaänderung:
Bedenken Sie Folgendes Array:
$a = [ 1 => ['a' => 1, 'b' => 2, 'c' => 3], 2 => ['a' => 1, 'b' => 2, 'c' => 3], ];
Um dieses Array in einer relationalen Datenbank zu speichern, können Sie eine Tabelle mit der folgenden Struktur erstellen:
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) );
Beispiel für Serialisierung und Unserialisierung:
<code class="php">function saveArray($array) { $serializedArray = serialize($array); $query = "INSERT INTO test_table (data) VALUES ('$serializedArray')"; // Execute the query and save the array } function getArray() { $query = "SELECT data FROM test_table"; // Execute the query $serializedArray = mysql_fetch_row($result)[0]; $unserializedArray = unserialize($serializedArray); return $unserializedArray; }</code>
Beispiel für JSON-Kodierung und -Dekodierung:
<code class="php">function saveArrayJSON($array) { $jsonEncodedArray = json_encode($array); $query = "INSERT INTO test_table (data) VALUES ('$jsonEncodedArray')"; // Execute the query and save the array } function getArrayJSON() { $query = "SELECT data FROM test_table"; // Execute the query $jsonEncodedArray = mysql_fetch_row($result)[0]; $decodedArray = json_decode($jsonEncodedArray, true); return $decodedArray; }</code>
Das obige ist der detaillierte Inhalt vonWie speichert und ruft man effektiv ein PHP-Array in einem MySQL-Feld ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!