Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Simpan array PHP ke MySQL?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembali ke Replikasi Tradisional Dari GTID

  2. @GeneratedValue superclass abstrak polimorfik melalui MySQL

  3. Pertanyaan dan Jawaban Wawancara MySql Umum Untuk Fresher + Berpengalaman

  4. Bagaimana cara MEMPERBARUI baris dalam tabel atau INSERT jika tidak ada?

  5. Apakah ada cara untuk memeriksa kinerja Pengindeksan mysql?