• Kategori Tulisan

  • Masukkan alamat email Anda untuk berlangganan blog Ri32 dan menerima pemberitahuan posting baru melalui email anda. Jika sudah bosan silahkan unsubscript.
    Terima kasih... : )

    Join 919 other subscribers

Membuat aplikasi Backup dan Restore Database menggunakan PHP


Latar Belakang

Database banyak digunakan untuk menyimpan data baik pada  aplikasi desktop maupun berbasis web.  untuk alasan keamana, database perlu dilakukan proses backup. sehingga jika suatu saat terjadi kerusakan data, dapat dilakukan proses restore database.

Bagi teman-teman yang terbiasa menggunakan aplikasi phpmyadmin pasti pernah menggunakna fasilitas export dan import database. nah pada artikel kalo ini saya akan membahas tentang sebuah aplikasi sederhana yang digunakan untuk backup dan restore database. Dalam aplikasi ini terdapat 3 file yaitu :

  • index.php yang digunakan untuk backup sekaligus halaman utama aplikasi
  • download_backup_data.php yang digunakan untuk mendownload file database (*.sql) yang sudah tersimpan didalam folder backup
  • recovery_data.php digunakan untuk restore atau mengembalikan  database ke keadaan semula sesuai dengan isi query yang ada didalam file backup database

Script Backup Database

1) Buat nama file untuk backup database

//membuat nama file
$file=date(“DdMY”).’_ri32_backup_data_’.time().’.sql’;

2) Memanggil fungsi backup database

//panggil fungsi dengan memberi parameter untuk koneksi dan nama file untuk backup
backup_tables(“localhost”,”root”,””,”absensi_db“,$file);

3) Fungsi untuk backup database

/*
untuk memanggil nama fungsi :: jika anda ingin membackup semua tabel yang ada didalam database, biarkan tanda BINTANG (*) pada variabel $tables = ‘*’
jika hanya tabel-table tertentu, masukan nama table dipisahkan dengan tanda KOMA (,)
*/
function backup_tables($host,$user,$pass,$name,$nama_file,$tables = ‘*’)
{
//untuk koneksi database
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);

if($tables == ‘*’)
{
$tables = array();
$result = mysql_query(‘SHOW TABLES’);
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}else{
//jika hanya table-table tertentu
$tables = is_array($tables) ? $tables : explode(‘,’,$tables);
}

//looping dulu ah
foreach($tables as $table)
{
$result = mysql_query(‘SELECT * FROM ‘.$table);
$num_fields = mysql_num_fields($result);

//menyisipkan query drop table untuk nanti hapus table yang lama
$return.= ‘DROP TABLE ‘.$table.’;’;
$row2 = mysql_fetch_row(mysql_query(‘SHOW CREATE TABLE ‘.$table));
$return.= “\n\n”.$row2[1].”;\n\n”;

for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
//menyisipkan query Insert. untuk nanti memasukan data yang lama ketable yang baru dibuat. so toy mode : ON
$return.= ‘INSERT INTO ‘.$table.’ VALUES(‘;
for($j=0; $j<$num_fields; $j++)
{
//akan menelusuri setiap baris query didalam
$row[$j] = addslashes($row[$j]);
$row[$j] = ereg_replace(“\n”,”\\n”,$row[$j]);
if (isset($row[$j])) { $return.= ‘”‘.$row[$j].'”‘ ; } else { $return.= ‘””‘; }
if ($j<($num_fields-1)) { $return.= ‘,’; }
}
$return.= “);\n”;
}
}
$return.=”\n\n\n”;
}

//simpan file di folder yang anda tentukan sendiri. kalo saya sech folder “DATA”
$nama_file;

$handle = fopen(‘./backup/‘.$nama_file,’w+’);
fwrite($handle,$return);
fclose($handle);
}

4) Membuat link untuk download file backup database

<a style=”cursor:pointer” onclick=”location.href=’download_backup_data.php?nama_file=‘” title=”Download”>Backup database telah selesai. Download file database

Script download File Backup database

Script Upload file sebelum di Restore

//definisikan variabel file dan alamat file
$uploaddir=’./restore/‘;
$alamatfile=$uploaddir.$nama_file;

//periksa jika proses upload berjalan sukses
if (move_uploaded_file($_FILES[‘datafile’][‘tmp_name’],$alamatfile))

Script untuk restore database

$filename = ‘./restore/’.$nama_file.”;
// Temporary variable, used to store current query
$templine = ”;
// Read in entire file
$lines = file($filename);
// Loop through each line
foreach ($lines as $line)
{
// Skip it if it’s a comment
if (substr($line, 0, 2) == ‘–‘ || $line == ”)
continue;
// Add this line to the current segment
$templine .= $line;
// If it has a semicolon at the end, it’s the end of the query
if (substr(trim($line), -1, 1) == ‘;’)
{
// Perform the query
mysql_query($templine) or print(‘Error performing query \’‘ . $templine . ‘\’: ‘ . mysql_error() . ‘

‘);
// Reset temp variable to empty
$templine = ”;
}}
echo “Berhasil Restore Database, silahkan di cek.”;

Tampilan Output

Backup Database

Restore Database

Download Database

Download

https://blogri32.blogspot.co.id/2017/12/free-downloads.html

Sekian tutorial dari saya, semoga dapat bermanfaat untuk teman-teman dan Anda semua…aamiin

Depok, 15-12-2010

KangAgus

15 Responses

  1. thank’s ilmunya bermanfaat banget….

    Like

  2. makasih mas, saya nyari2x k mana2x baru k temu di sini,…

    Like

  3. Mas agus trima kasih atas Ilmunya saya menggunakan referensi dari tutorial mas agus beserta tutorial dari ‘http://blog.rosihanari.net/membuat-sendiri-script-php-untuk-backup-mysql’

    Saya mohon pencerahannya, saya mencoba script yg saya buat sendiri
    dimana saya melakukan upload file yang saya sudah upload menggunakan mysqldump terlebih dahulu ke directory mysql/bin lalu saya mengeksekusi function restore database di sheel via php, dengan code sbb:

    if(isset($_FILES[‘datafile’]))
    {
    $file = $_FILES[‘datafile’][‘tmp_name’];
    }

    //mengupload file sql ke directory bin

    $temp=”C:/xampp/mysql/bin/backup.sql”;
    if(move_uploaded_file($file,”$temp”))
    {

    $command = “C:/xampp/mysql/bin/mysql -u”.$username_data.” -p”.$password_data.” “.$database_data.” < backup.sql";

    // mengeprint command eksekusi
    echo $command;
    // menjalankan command restore di shell via PHP
    exec($command);
    }

    waktu saya melakukan exekusi pada script ini, tidak ditemukan error apapun, tapi database saya tidak mengalami restore, tapi apabila saya mengcopy command dari hasil page yg telah terexekusi dan menjalankannya ke command prompt, maka database saya akan te-restore, maaf apabila penjelasannya membinggungkan

    Terima kasih

    Like

  4. kenapa muncul

    Deprecated: Function ereg_replace() is deprecated in D:\MY XAMPP\xampp\htdocs\backup-restore\index.php on line 77

    Like

  5. Gan, makasih ya informasinya 😀

    Like

  6. mas mau tanya donks yang dihasilkan dari php ini kan file sql kalau mau bikin file sql nya terpassword gimana ya?

    Like

  7. mas agus syukron……atas Ilmunya saya menggunakan referensi dari tutorial mas agus, untuk web site saya dan lembaga saya mas,,,

    Like

  8. Terima kasih Kang Agus Sumarna, tulisannya sangat bermanfaat sekali.

    Like

  9. error_reporting(0);

    Like

  10. terimakasih banyak untuk tutorialnnya mas
    sangat bermanfaat sekali (y)

    Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.