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');
maaf kok muncul error ya mas
errornya seperti apa bre?
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
Waduh maaf banget, slow respon gan, saya juga jarang update situs ini. Ok, pada baris kode
ereg_replace("\n","\\n",$row[$j]);
, silahkan ganti menjadipreg_replace("\n","\\n",$row[$j]);
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
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]);