Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah anda menyimpan dan mendapatkan semula tatasusunan PHP dalam medan MySQL dengan berkesan?

Bagaimanakah anda menyimpan dan mendapatkan semula tatasusunan PHP dalam medan MySQL dengan berkesan?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 08:25:02735semak imbas

How do you effectively store and retrieve a PHP array in a MySQL field?

Menyimpan dan Mendapatkan Kembali Tatasusunan PHP dalam MySQL

Soalan:
Bagaimana anda boleh menyimpan dan mendapatkan semula tatasusunan data dalam satu medan MySQL?

Jawapan:
Menyimpan Data Tatasusunan:

Menyimpan tatasusunan dalam satu medan MySQL adalah tidak digalakkan, kerana ia menjejaskan integriti data hubungan. Adalah disyorkan untuk melaraskan skema anda untuk menampung data tatasusunan.

Menggunakan Pensiri dan Nyahsiri:

Jika anda mesti menyimpan tatasusunan dalam satu medan, anda boleh menggunakan fungsi serialize() dan unserialize(). Walau bagaimanapun, pendekatan ini mengehadkan keupayaan anda untuk melakukan pertanyaan langsung pada tatasusunan yang disimpan.

Pengekodan dan Penyahkodan JSON:

Sebagai alternatif, anda boleh mempertimbangkan untuk menggunakan json_encode() dan json_decode () untuk menyimpan dan mendapatkan semula data tatasusunan. Kaedah ini membenarkan data berformat JSON disimpan dalam medan teks dan ditukarkan kembali kepada format tatasusunan.

Contoh untuk Pengubahsuaian Skema Hubungan:

Pertimbangkan perkara berikut tatasusunan:

$a = [
    1 => ['a' => 1, 'b' => 2, 'c' => 3],
    2 => ['a' => 1, 'b' => 2, 'c' => 3],
];

Untuk menyimpan tatasusunan ini dalam pangkalan data hubungan, anda boleh mencipta jadual dengan struktur berikut:

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)
);

Contoh untuk Pensirian dan Penyahsiran:

<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>

Contoh untuk Pengekodan dan Penyahkodan JSON:

<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>

Atas ialah kandungan terperinci Bagaimanakah anda menyimpan dan mendapatkan semula tatasusunan PHP dalam medan MySQL dengan berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn