Menyimpan Tatasusunan dalam MySQL: Pendekatan Alternatif
Persoalan bagaimana untuk menyimpan tatasusunan data dalam satu medan MySQL telah lama membingungkan pemaju. Walaupun serialize() dan unserialize() mungkin menawarkan penyelesaian, ia mengorbankan kebolehtanyaan.
Memeriksa Data Hubungan
Pendekatan terbaik untuk menyimpan tatasusunan dalam MySQL terletak pada pemeriksaan data hubungan dan mengubah suai skema dengan sewajarnya. Daripada cuba menjejalkan tatasusunan ke dalam satu medan, pertimbangkan untuk mencipta jadual yang boleh memuatkan kandungan tatasusunan.
Contoh Struktur Jadual
Sebagai contoh, katakan kita mempunyai tatasusunan tatasusunan bersarang:
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), );
Dalam kes ini, kami akan mencipta jadual seperti ini:
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) );
Memasukkan dan Mengambil Rekod
Untuk menyimpan tatasusunan dalam jadual, kita boleh menggunakan pertanyaan sisipan:
foreach ($t as $k => $v) { $query = "INSERT INTO test (id," . implode(',', array_keys($v)) . ") VALUES ($k," . implode(',', $v) . ")"; $r = mysql_query($query,$c); }
Untuk mendapatkan semula rekod, kami boleh menggunakan pertanyaan pilihan:
function getTest() { $ret = array(); $c = connect(); $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; }
Pendekatan ini membolehkan pertanyaan mudah dan manipulasi data tatasusunan dalam pangkalan data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan dan Menyoal Data Tatasusunan dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!