Tidak ada baik cara untuk menyimpan array ke dalam satu bidang.
Anda perlu memeriksa data relasional Anda dan membuat perubahan yang sesuai pada skema Anda. Lihat contoh di bawah untuk referensi pendekatan ini.
Jika Anda harus simpan array ke dalam satu bidang lalu serialize()
dan unserialize()
fungsi akan melakukan trik. Tetapi Anda tidak dapat melakukan kueri pada konten yang sebenarnya.
Sebagai alternatif untuk fungsi serialisasi ada juga json_encode()
dan json_decode()
.
Perhatikan larik berikut
$a = array(
1 => array(
'a' => 1,
'b' => 2,
'c' => 3
),
2 => array(
'a' => 1,
'b' => 2,
'c' => 3
),
);
Untuk menyimpannya di database Anda perlu membuat tabel seperti ini
$c = mysql_connect($server, $username, $password);
mysql_select_db('test');
$r = mysql_query(
'DROP TABLE IF EXISTS test');
$r = mysql_query(
'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)
)');
Untuk bekerja dengan catatan, Anda dapat melakukan kueri seperti ini (dan ya ini contohnya, berhati-hatilah!)
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;
}
function putTest($t) {
$c = connect();
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);
}
putTest($a);
$b = getTest();
connect()
fungsi mengembalikan sumber daya koneksi mysql
function connect() {
$c = mysql_connect($server, $username, $password);
mysql_select_db('test');
return $c;
}