Blog Posts » PHP & MySQL » Menyimpan Settingan/Konfigurasi CMS di Satu Field MySQL

Menyimpan Settingan/Konfigurasi CMS di Satu Field MySQL

Inilah Tips/Trik tentang bagaimana Menyimpan Settingan/Konfigurasi CMS di Satu Field MySQL. Jika kita membuat suatu CMS (Content Management System) atau aplikasi web berbasis PHP & MySQL, kadang kita harus menyimpan Pengaturan di Database. Misal seperti post_perpage, comment_perpage, max_chars, dsb. Kita bisa membuat beberapa Field untuk masing-masing pengaturan tersebut, akan tetapi hal itu akan dirasa tidak efisien. Untuk itu diperlukan metode untuk mengumpulkan dan menguraikan kembali semua Data Pengaturan yang disimpan jika kita hanya menggunakan satu Field saja. Teknik ini juga umum digunakan di beberapa CMS Populer seperti WordPress, dll. Yaitu dengan memanfaatkan fungsi serialize() dan unserialize() di PHP. Dibawah ini saya akan mencoba memberi gambaran tentang penerapan dari fungsi-fungsi tersebut.

1. Menyimpan Data Pengaturan
[Textarea][RAW][Download]

  1. <?php
  2. // Koneksi Database
  3. mysql_connect('localhost', 'root', '') or die(mysql_error());
  4. mysql_select_db('database') or die(mysql_error());
  5. $data = array(
  6.     'post_perpage' => 5,
  7.     'comment_perpage' => 10,
  8.     'max_chars' => 160,
  9.     'timezone' => 'Asia/Jakarta'
  10. );
  11. $data_pengaturan = serialize($data);
  12. // Hasil: a:4:{s:13:"post_perpage";i:5;s:16:"comment_perpage";i:10;s:9:"max_chars";i:160;s:9:"timezone";i:"Asia/Jakarta";}
  13. // Simpan ke Database
  14. mysql_query("INSERT INTO pengguna ('id', 'nama', 'pengaturan') VALUES(25, 'muhammad', '$data_pengaturan')") or die(mysql_error());


2. Mengambil Data Pengaturan
[Textarea][RAW][Download]

  1. $query = mysql_query("SELECT * FROM pengguna WHERE id = 25") or die(mysql_error());
  2. $pengguna = mysql_fetch_array($query);
  3. $pengaturan = $pengguna['pengaturan'];
  4. $pengaturan_pengguna = unserialize($pengaturan);
  5. // Hasil: Array
  6. // (
  7. //     [post_perpage] => 5
  8. //     [comment_perpage] => 10
  9. //     [max_chars] => 160
  10. //     [timezone] => Asia/Jakarta
  11. // )
  12. echo $pengaturan_pengguna['post_perpage']; // 5
  13. echo $pengaturan_pengguna['comment_perpage']; // 10
  14. echo $pengaturan_pengguna['max_chars']; // 160
  15. echo $pengaturan_pengguna['timezone']; // Asia/Jakarta


Semoga bermanfaat :)

Update: Fungsi mysql sudah ditinggalkan oleh PHP. Silahkan lanjut baca mysqli_connect dan mysqli_query.

(admin)