Heim >Datenbank >MySQL-Tutorial >Wie soll ich PHP-Arrays in einer relationalen Datenbank speichern und verwalten?

Wie soll ich PHP-Arrays in einer relationalen Datenbank speichern und verwalten?

Susan Sarandon
Susan SarandonOriginal
2024-12-09 05:17:16403Durchsuche

How Should I Store and Manage PHP Arrays in a Relational Database?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn