Export Database Dalam Codeigniter Hanya Dengan Satu Klik

Keuntungan menggunakan framework adalah mempercepat dalam proses development. Dalam Codeigniter t...
Penulis
Admin
Kategori
Tutorial
Estimasi
3 menit baca
Dilihat
1.5K
Posting
23 Dec 2021
Export Database Dalam Codeigniter Hanya Dengan Satu Klik Keuntungan menggunakan framework adalah mempercepat dalam proses development. Dalam Codeigniter terdapat teknik cara export MySQL dengan cepat, kita akan menjelaskan bagaimana caranya disini. Export Database Dalam Codeigniter Hanya Dengan Satu Klik
2022-11-25

Database merupakan salah satu komponen yang penting dalam mengolah data. Database digunakan untuk menyimpan atau mengambil data yang dibutuhkan, jika kalian mengunakan MySQL, terkadang untuk membackup file database .sql kita harus masuk kedalam phpmyadmin untuk export database, tentu sangat merepotkan bukan. Kalian tidak perlu khawatir, kami akan memberikan solusi kepada kalian secara mudah dan cepat bagaimana cara cepat mengexport serta mendownload database dengan mudah.

Kita menemukan beberapa kendala pada pemilik website yang menggunakan framework CI ketika melakukan backup database, biasanya mereka melakukannya secara manual dan hal ini tentu sangat merepotkan sekali. Untuk membackup database dalam CI sebenarnya kita tidak perlu repot untuk masuk kedalam panel phpmyadmin, kalian bisa membackup database bahkan dengan hanya satu klik tombol saja, penasaran bagaimana caranya? yuk simak.

 

Export Database Dalam Codeigniter Hanya Dengan Satu Klik

 

 

1. Persiapan

Disini kita akan membuat file script khusus untuk membuat index tampilan utama dan beberapa function untuk memproses export database yang nantinya akan tersimpan didalam folder khusus dan terdownload secara otomatis.

Kalian perlu membuat file baru dengan nama Backupdb.php dan sebuah folder baru didalam folder application, disini kita akan beri nama folder tersebut yaitu database_backup, dan berikut adalah isi code didalam file Backupdb.php:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Backupdb extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
    public function index() {
        $data['title'] = 'Backup database';
        $data['description'] = 'Menyimpan dan mendownload file sql database secara otomatis';
        $this->load->view('view_backup', $data);
    }
}

 

Dan untuk mengaktifkan fitur backup database ini, kalian perlu membuat satu function tambahan lagi untuk memproses export database kalian, disini kita akan beri nama function tersebut dengan nama backup_database, berikut adalah codenya:

public function backup_database() {
    $this->load->dbutil();
    $conf = [
        'format' => 'zip',
        'filename' => 'backup_db.sql'
    ];

    $backup = $this->dbutil->backup($conf);
    $db_name = 'backup_db' . date("d-m-Y_H-i-s") . '.zip';
    $save = APPPATH . 'database_backup/' . $db_name;

    $this->load->helper('file');
    write_file($save, $backup);

    $this->load->helper('download');
    force_download($db_name, $backup);
}

Script lengkapnya:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Backupdb extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
    
    public function index() {
        $data['title'] = 'Backup database';
        $data['description'] = 'Menyimpan dan mendownload file sql database secara otomatis';
        $this->load->view('view_backup', $data);
    }

    public function backup_database() {
        $this->load->dbutil();
        $conf = [
            'format' => 'zip',
            'filename' => 'backup_db.sql'
        ];

        $backup = $this->dbutil->backup($conf);
        $db_name = 'backup_db' . date("d-m-Y_H-i-s") . '.zip';
        $save = APPPATH . 'database_backup/' . $db_name;

        $this->load->helper('file');
        write_file($save, $backup);

        $this->load->helper('download');
        force_download($db_name, $backup);
    }
}

 

2. Beberapa penjelasan dalam syntax

Agar kalian lebih paham dengan apa yang terdapat didalam isi code tersebut, berikut adalah penjelasannya:

1. Load utility class database

Sebelum masuk kedalam tahap konfigurasi dan inisialisasi file sql, menyimpan dan mendownload file sql database kalian, diperlukan beberapa baris kode agar berjalan dengan normal.

$this->load->dbutil();
$conf = [
  'format' => 'zip',
  'filename' => 'backup_db.sql'
];

 

Untuk mengaktifkan koneksi dengan database, kita memerlukan database utility class, database utility class merupakan metode driver database dari Codeigniter yang digunakan untuk memanage atau memanggil data langsung dari database.

Dan selanjutnya adalah kita membutuhkan sebuah variabel array $conf untuk menentukan format dan hasil akhir file sql yang sudah tercompress menjadi zip. Untuk filename sendiri, kalian bisa isi sesuai yang kalian inginkan dan diakhiri dengan .sql.

2. Konfigurasi

Pada tahap ini, kita mengkonfigurasikan file sql database, mengatur nama dari file yang akan didownload serta lokasi file backup database yang disimpan.

$backup = $this->dbutil->backup($conf);
$db_name = 'backup_db' . date("d-m-Y_H-i-s") . '.zip';
$save = APPPATH . 'database_backup/' . $db_name;

 

Disini terdapat tiga variabel yang penting yaitu backup, db_name dan save. Variabel $backup berfungsi untuk menetapkan preferensi dari konfigurasi tambahan dengan cara mengirimkan array ke dalam parameter untuk diproses, array yang dimaksud adalah $conf.

Kemudian variabel $db_name berfungsi untuk menentukan nama dari file zip yang akan tersimpan dan terdownload.

Dan variabel yang terakhir yaitu $save yang berfungsi untuk menentukan lokasi penyimpanan dari export database kalian.

3. Memanggil helper file

Selanjutnya adalah kita memanggil helper bawaan dari CI yang membantu proses bekerja dengan file dan menyimpan file zip kedalam lokasi yang kita sudah tentukan. Dalam parameter write_file, terdapat 2 variabel yang digunakan yaitu lokasi file disimpan dan hasil export dari database yang telah sukses disimpan kedalam file sql dalam bentuk zip.

$this->load->helper('file');
write_file($save, $backup);

 

4. Memanggil helper download

Dan yang terakhir, beberapa baris kode ini berfungsi untuk memanggil helper bawaan dari CI untuk memungkinkan kalian mendownload kedalam desktop secara otomatis ketika tombol di jalankan. Untuk mengaktifkan fitur ini, diperlukan function force_download dengan mengunakan 2 variabel yaitu nama file zip yang sudah ditentukan dan hasil export database yang telah sukses disimpan kedalam file sql dalam bentuk zip.

$this->load->helper('download');
force_download($db_name, $backup);

 

3. Membuat view

Untuk membuat tampilan front-end, kita membuatnya secara sederhana saja karena hanya menampilkan sebuah tombol yang berfungsi untuk mendownload file database otomatis, caranya adalah dengan mengarahkan sebuah URL didalam anchor link kedalam function yang sudah kita tentukan tadi, berikut adalah isi dari view_backup.php:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title><?php echo $title; ?></title>
  <meta name="description" content="<?php echo $description; ?>"/>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.min.css" integrity="sha512-T584yQ/tdRR5QwOpfvDfVQUidzfgc2339Lc8uBDtcp/wYu80d7jwBgAxbyMh0a9YM9F8N3tdErpFI8iaGx6x5g==" crossorigin="anonymous" referrerpolicy="no-referrer" />

  <style>
    h3 {
      text-align: center;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 30px;
    }

        .content {
      margin-top: 20px;
    }

    .extra {
      margin: 0;
      position: absolute;
      top: 15%;
      left: 50%;
      -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      background-color: blue;
      color: white;
      height: 30px;
      width: auto;
      border-radius: 5%;
    }
  </style>
</head>

<body>
  <div class="content">
    <h3><?php echo $title; ?></h3>
    <a href="<?php echo base_url('backupdb/backup-database'); ?>" class="btn btn-sm btn-primary extra" target="_blank">Backup Database</a>
  </div>
</body>

</html>

 

Berikut adalah hasil akhir dari tutorial export database dengan mengunakan Codeigniter:

 

Tutorial Export Database MySQL Codeigniter Hanya Satu Klik

1. Tampilan awal

 

Tutorial Export Database MySQL Codeigniter Hanya Satu Klik

2. Berhasil terdownload secara otomatis

 

Tutorial Export Database MySQL Codeigniter Hanya Satu Klik

3. Dan file berhasil tersimpan didalam folder database_backup

 

Penutup

Itulah cara sederhana untuk menyimpan dan mendownload database kalian dengan mengunakan codeigniter, dengan mengunakan cara ini, kalian sudah tidak perlu lagi untuk membuka phpmyadmin secara manual, cukup dengan satu tombol saja semua sudah terselesaikan dengan baik.

Kalian juga dapat memodifikasi script ini secara mendalam, misalnya fitur tersebut hanya bisa digunakan didalam halaman admin. Kalian hanya perlu menambahkan file tambahan saja untuk mengaktifkan fitur export database ini secara private dimana tidak ada user lain yang boleh mengakses fitur ini selain admin saja.

Share