Cara backup database MySQL menggunakan PHP

6
Cara backup database MySQL menggunakan PHP

Membackup database adalah tugas yang paling penting bagi setiap pengembang web. Membackup database secara reguler mencegah risiko kehilangan data dan membantu mengembalikan database jika ada masalah. Jadi, backuplah database bila memungkinkan.

Ada banyak cara yang tersedia untuk membackup database MySQL dalam sebuah file dan kamu bisa membackup database dalam satu klik dari server hostingmu. Tapi kalo kamu ingin mengambil backup’an database MySQL tanpa login ke server hosting atau phpMyAdmin, kamu bisa melakukannya menggunakan script PHP. Dalam tutorial ini, kita akan membuat script PHP untuk membackup database MySQL dan menyimpannya di file SQL.

Cara melakukan backup database MySQL dengan menggunakan PHP

Semua kode PHP akan dikelompokkan bersama dalam fungsi backupDatabaseTables(). Menggunakan fungsi backupDatabaseTables(), kamu dapat membuat cadangan/backup tabel tertentu atau semua tabel dari database. Parameter-parameter berikut diperlukan untuk membackup database MySQL menggunakan PHP.

  • $dbHost – Diperlukan. Untuk menentukan host database.
  • $dbUsername – Diperlukan. Untuk menentukan username database.
  • $dbPassword – Diperlukan. Untuk menentukan password database.
  • $dbName – Diperlukan. Untuk menentukan nama database.
  • $tables – Opsional. Untuk menentukan nama tabel dalam string atau array yang dipisahkan koma. Hilangkan parameter ini untuk mengambil backup dari semua tabel database.
<?php
//Menghasilkan backup DB
backupDatabaseTables('localhost','root','','pdf');

function backupDatabaseTables($dbHost,$dbUsername,$dbPassword,$dbName,$tables = '*'){

  //menghubungkan & memilih DB
    $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);

 //Mendapatkan semua Table
 if($tables == '*'){
  $tables = array();
  $result = $db->query("SHOW TABLES");
  while($row = $result->fetch_row()){
   $tables[] = $row[0];
  }
 }else{
  $tables = is_array($tables)?$tables:explode(',',$tables);
 }

 //Loop melalui Table
 foreach($tables as $table){
  $result = $db->query("SELECT * FROM $table");
  $numColumns = $result->field_count;

  $return .= "DROP TABLE $table;";

        $result2 = $db->query("SHOW CREATE TABLE $table");
        $row2 = $result2->fetch_row();

  $return .= "\n\n".$row2[1].";\n\n";

  for($i = 0; $i < $numColumns; $i++){
   while($row = $result->fetch_row()){
    $return .= "INSERT INTO $table VALUES(";
    for($j=0; $j < $numColumns; $j++){
     $row[$j] = addslashes($row[$j]);
     $row[$j] = ereg_replace("\n","\\n",$row[$j]);
     if (isset($row[$j])) { $return .= '"'.$row[$j].'"' ; } else { $return .= '""'; }
     if ($j < ($numColumns-1)) { $return.= ','; }
    }
    $return .= ");\n";
   }
  }
  $return .= "\n\n\n";
 }

 //simpan file
 $handle = fopen('hasil-db-backup-'.time().'.sql','w+');
 fwrite($handle,$return);
 fclose($handle);
}

Penggunaan:

Gunakan fungsi backupDatabaseTables() di PHP untuk menghasilkan backup database MySQL dan menyimpannya ke dalam file SQL. Kamu bisa mengembangkan script ini.

backupDatabaseTables('localhost','root','','codingan');

BAGIKAN
Subscribe
Beritahu
guest
6 Comments
terlama
terbaru vote teratas
Inline Feedbacks
View all comments
aguestpd
aguestpd
Agustus 13, 2017 14:48

maaf kok muncul error ya mas

aguestpd
aguestpd
Agustus 20, 2017 17:44
Reply to  Codingan

Fatal error: Uncaught Error: Call to undefined function ereg_replace() in C:xampphtdocsnew_stokmodulsfungsi_backup.php:30 Stack trace: #0 C:xampphtdocsnew_stokmodulsfungsi_backup.php(3): backupDatabaseTables(‘localhost’, ‘root’, ”, ‘db_stok’) #1 {main} thrown in C:xampphtdocsnew_stokmodulsfungsi_backup.php on line 30

Muhammad
Muhammad
November 1, 2017 16:34
Reply to  Codingan

Masih error juga Pak

Notice: Undefined variable: return in D:\xammp\htdocs\website\lab\backup.php on line 26

Warning: preg_replace(): Empty regular expression in D:\xammp\htdocs\website\lab\backup.php on line 38

jinggo
Mei 7, 2018 12:24
Reply to  Muhammad

Masih error juga Pak

Notice: Undefined variable: return in D:\xammp\htdocs\website\lab\backup.php on line 26 ganti dengan skrip $return = “drop table $table”;

Warning: preg_replace(): Empty regular expression in D:\xammp\htdocs\website\lab\backup.php on line 38
ganti dengan $row[$j] = ereg_replace(“\n”,”\n”,$row[$j]);