Senin, 27 Februari 2017

Membuat backup dengan PHP

Assalamu'alaikum wr.wb.


A. Pengertian

   Menurut wikipedia bahasa Indonesia,  Dalam teknologi informasi, backup adalah proses membuat data cadangan dengan cara menyalin atau membuat arsip data komputer sehingga data tersebut dapat digunakan kembali apabila terjadi kerusakan atau kehilangan.

B. Latar Belakang

    Backup adalah MySQL, dengan menggunakan backup database ini anda tidak perlu membackup dari PhpMyAdmin atau dari cpanel karena dengan ini anda bisa menempatkan kode backup database ini di dalam web aplikasi yang sudah anda buat maupun yang sedang di kerjakan.
karena satu tugas yang paling penting setiap pengembang web aplikasi adalah perlunya sering melakukan backup database, padahal sebagian besar web hosting baik yang free maupun berbayar tidak mengijinkan exec() di dalam PHP.

C. Alat dan Bahan
  • SublimeText
  • OS XUbuntu 16.10
  • Web Browser
  • Koneksi Internet
  • PHP 5.6
D. Tujuan

     Bertujuan untuk membackup data dalam database yang kita perlukan dengan menggunakan code php.

E. Tahap Pelaksanaan

      1. Buka sublimetext dengan Menu -> ketikkan pada pencarian SublimeText.
      2. Buat file dengan nama koneksi dengan format .php.
      3. File tersebut kita akan isi dengan coding seperti dibawah ini.

          <?php

             $host = "localhost";
             $usrname = "root";
             $pass = "....";
             $db = "...";

             mysql_connect($host, $usrname, $pass);
             mysql_select_db(pos);

           ?>

         4. Berikutnya kita akan membuat file baru dengan nama "function" dengan format .php. Berikut adalah codingnya.

          <?php
             // set function backup
             function backup_db($table = '*') {
             $result = null;
             $tables = array();

            // check table yang akan di backup
           if ($table == '*') {
              $sql = 'SHOW TABLES';
              $rs = mysql_query($sql) or die ($sql);

             while ($row = mysql_fetch_array($rs)) {
             $name = $row[0];

             array_push($tables, $name);
                   }
             } else {
              $tables = is_array($table) ? $table : explode(',', $table);
             }

             // loop table
             foreach ($tables as $table) {
            // create table
            $sql = 'SHOW CREATE TABLE '.$table;
            $rs  = mysql_query($sql);
            $row = mysql_fetch_array($rs);
            $create_table = $row[1];

            // show data table
            $sql = 'SELECT * FROM '.$table;
            $rs = mysql_query($sql);

            // set field per table
            $fields = mysql_num_fields($rs);
 
            // create comment table
            $result .= "--------------------\n";
            $result .= '-- CREATE TABLE '.$table."\n";
            $result .= "--------------------\n";
            $result .= 'DROP TABLE '.$table.";\n";
            $result .= $create_table."\n\n";

            // loop field per table
            for ($i=0; $i<$fields; $i++) {

           // loop data table
            while($row = mysql_fetch_array($rs)) {
            $result .= 'INSERT INTO '.$table.' VALUES (';

           // loop value field per table
           for ($j=0; $j<$fields; $j++) {
           $row[$j] = addslashes($row[$j]);
           $row[$j] = preg_replace('/\n/i','\\n',$row[$j]);

           if (isset($row[$j])) {
            $result .= '"'.$row[$j].'"';
              } else {
            $result .= 'NULL';
           }

           $result .= $j < ($fields - 1) ? ', ' : '';
          }

           $result .= ");\n";
          }
          }
           $result .= "\n\n\n";
           }

           // simpan file sql
        $handle = fopen('db-backup-'.time().'-'.md5(implode(',', $tables)).'.sql', 'w+');
        fwrite($handle, $result);
        fclose($handle);
        }
        ?>

       5. Selanjutnya kita buat file baru dengan nama index.php codingnya seperti dibawah ini.

        <?php
          // load koneksi dan function
             require_once __DIR__.'/koneksi.php';
             require_once __DIR__.'/function.php';

         // show table dari database
            $sql = 'SHOW TABLES';
            $rs = mysql_query($sql) or die ($sql);

           if (isset($_POST['backup'])) {
             backup_db($_POST['table']);
             }
          ?>
<!DOCTYPE html>
<html>
<head>
<title>MEMBUAT BACKUP DATABSE SENDIRI</title>
<script type="text/javascript">
 window.onload = function() {
  _('all-table', 'id').addEventListener('click', function(e) {
   var checked = _('all-table', 'id').checked,
   tables = _('table', 'class');

   for(var i=0; i<tables.length; i++) {
    if (checked) {
     tables[i].checked = true;
    } else {
     tables[i].checked = false;
    }
   }
  });
 }

 function _(element, type) {
  var e = type == 'id' ? document.getElementById(element) : document.getElementsByClassName(element);
  return e;
 }
</script>
</head>
<body style="font-style: Verdana; font-size: 14px">
<form method="POST">
<h3>LIST TABLE</h3>
<hr />
<label><input type="checkbox" id="all-table" /> <b>Semua table</b></label>< br />
<?php while ($row = mysql_fetch_array($rs)) { ?>
<label><input type="checkbox" name="table[]" class="table" value="<?php echo $row[0]; ?>" /> <?php echo $row[0]; ?></label>< br />
<?php } ?>
<hr />
<button type="submit" name="backup">BACKUP DATABASE</button>
<p>* pilih table yang akan anda backup</p>
</form>
</body>
</html>

     6. Dan hasilnya akan seperti dibawah ini.
 

F. Kesimpulan

    Dari pembahasan diatas dapat tarik kesimpulan bahwa cara membackup database tidak hanya menggunakan tool-tool pengolahan database tapi kita juga bisa menggunakan coding php.

G. Referensi
  • https://cahbiyen.blogspot.co.id/2016/02/membuat-backup-databse-sendiri.html
  • https://id.wikipedia.org/wiki/Backup
Sekian dan Terimakasih.

SMK Bisa!!

Wassalamu'alaikum wr.wb.

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.