Membuat backup database dengan php

Pada kesempatan baik ini kami akan memberikan sebuah tutorial tentang bagaimana cara membuat script PHP backup restore database MySQL, artinya data yang terdapat didalam database akan di backup dan kemudian dapat di restore kembali pada suatu waktu yang ditentukan dengan menggunakan sebuah instruksi yang dibuat menggunakan script PHP backup restore database. Sederhanya adalah melakukan ekspor dan impor database, namun ekspor dan impor database identik menggunakan tool pada GUI engine database (phpmyadmin), sedangkan backup restore lebih identik menggunakan GUI web aplikasi yang kita buat.

Sebagai contoh, Anda telah memiliki Aplikasi Kepegawaian SIMPEG, kemudian didalam aplikasi tersebut terdapat sebuah database dengan nama "db_simpeg" tentunya dengan beberapa tabel didalamnya. Demi keamanan data Anda akan melakukan backup secara periodik kemudian melakukan restore jika diperlukan. Membutuhkan effort lebih dan tidak efektif jika Anda melakukan backup dan restore data melalui GUI engine database yang digunakan, oleh sebab itu lebih baik Anda kembangkan sendiri tool tersebut menggunakan script PHP. Pertanyaanya adalah script PHP backup restore database MySQL seperti apa yang harus Anda kembangkan?.

Tutorial backup restore dengan script PHP backup restore database MySQL ini kami lakukan pada sistem operasi Windows 7 dan menggunakan web server XAMPP ver 5.6.3 include dengan database MySQL. Untuk mengikuti tutorial ini pastikan komputer anda telah terinstall web server XAMPP tersebut. Jika Anda belum memililki web server XAMPP, silahkan install dengan melihat panduannya disini cara instal web server XAMPP.

Berikut langkah - langkah atau cara backup restore dengan script PHP backup restore database MySQL lengkap dengan contohnya:

Script PHP Backup Restore Database MySQL



Script PHP backup restore

1. Bentuk GUI untuk menampilkan menu backup dan restore.

Membuat backup database dengan php

Script PHP backup restore data

2. Bentuk script php backup database dengan nama file "backup-data.php", sebagai action backup database ketika menu backup seperti pada gambar di atas diklik.

Berikut adalah script backup-data.php tersebut:

<?php
	error_reporting(0);
	$file=date("Ymd").'_backup_database_'.time().'.sql';
	backup_tables("localhost","root","","db_simpeg",$file);
?>
<p align="center">Backup database telah berhasil !</p><br />
<p align="center"><a style="cursor:pointer" onclick="location.href='./pages/backup-restore/download_backup_data.php?nama_file=<?php echo $file;?>'" title="Download">Download file database</a></p>
<?php
	function backup_tables($host,$user,$pass,$name,$nama_file,$tables ='*')	{
	$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{
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
	foreach($tables as $table){
		$result = mysql_query('SELECT * FROM '.$table);
		$num_fields = mysql_num_fields($result);
		$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)){
				$return.= 'INSERT INTO '.$table.' VALUES(';
				for($j=0; $j < $num_fields; $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 < ($num_fields-1)) { $return.= ','; }
				}
				$return.= ");\n";
				}
			}
			$return.="\n\n\n";
		}							
		$nama_file;
		$handle = fopen('./pages/backup-restore/backup/'.$nama_file,'w+');
		fwrite($handle,$return);
			fclose($handle);
	}
?>

Jika script php backup data di atas dijalankan, maka proses backup telah dilakukan dan akan menghasilkan GUI seperti pada gambar berikut:

Membuat backup database dengan php

Script PHP backup restore data

Pada gambar diatas terdapat link download file database, jika link tersebut diklik maka akan menampilkan popup download database, kemudian jika klik OK, maka proses download database akan dilakukan, artinya proses "backup database" telah tereksekusi dan akan menghasilkan sebuah file berekstensi .sql

3. Bentuk script php download database dengan nama file "download_backup_data.php", sebagai action ketika link download file database seperti pada gambar di atas diklik.

Berikut adalah script download_backup_data.php tersebut:

<?php
	$file=$_GET['nama_file'];	
    // nama file yang akan didownload
	header("Content-Disposition: attachment; filename=".$file);
    // ukuran file yang akan didownload
	header("Content-length: ".$file);
    // jenis file yang akan didownload
	header("Content-type: ".$file);
	// proses membaca isi file yang akan didownload dari folder
	$fp  = fopen("./backup/".$file, 'r');
	$content = fread($fp, filesize('./backup/'.$file));
	fclose($fp);
	echo $content;
	exit;
?>

4. Proses backup database telah selesai, selanjutnya adalah proses restore database.

5. Bentuk script php restore database dengan nama file "restore-data.php", sebagai action ketika menu restore database seperti pada gambar di atas diklik.

Berikut adalah script restore-data.php tersebut:

<form enctype="multipart/form-data" method="post" class="form-horizontal">
	<div class="form-group">
		<label class="col-sm-3 control-label">File Database (*.sql)</label>
		<div class="col-sm-7">
			<input type="text" name="nip" class="form-control" maxlength="12">
			<input type="file" name="datafile" size="30" />
		</div>
	</div>
	<div class="form-group">
		<div class="col-sm-offset-3 col-sm-7">
			<button type="submit" name="restore" class="btn btn-danger">Restore Database</button>
		</div>
	</div>
</form>
<?php
	if(isset($_POST['restore'])){
		$koneksi=mysql_connect("localhost","root","");
		mysql_select_db("db_sppdinas",$koneksi);
		$nama_file=$_FILES['datafile']['name'];
		$ukuran=$_FILES['datafile']['size'];
		if ($nama_file==""){
			echo "Fatal Error";
		}
		else{
		//definisikan variabel file dan alamat file
			$uploaddir='./pages/backup-restore/restore/';
			$alamatfile=$uploaddir.$nama_file;
			if (move_uploaded_file($_FILES['datafile']['tmp_name'],$alamatfile)){
				$filename = './pages/backup-restore/restore/'.$nama_file.'';									
				$templine = '';
				$lines = file($filename);
					foreach ($lines as $line){
						if (substr($line, 0, 2) == '--' || $line == '')
						continue;
						$templine .= $line;
						if (substr(trim($line), -1, 1) == ';'){
							mysql_query($templine) or print('Error performing query \ . $templine . '\': ' . mysql_error() . ');
							$templine = '';
						}
					}
				echo "Restore Database Telah Berhasil, Silahkan dicek !";
			}
			else{
				echo "Restore Database Gagal, kode error = " . $_FILES['location']['error'];
			}	
		}
	}
	else{
		unset($_POST['restore']);
	}
?>

Tampilan action dari script restore database di atas kurang lebih seperti gambar berikut:

Membuat backup database dengan php

Script PHP backup restore data

Download Tutorial Script PHP Backup Restore Database MySQL (adsbygoogle = window.adsbygoogle || []).push({});

Download Script Backup Restore

6. Backup dan restore database telah selesai.

Sekian penjelasan tentang bagaimana cara membuat script PHP backup restore database MySQL, lengkap dengan contoh dan tutorialnya. Untuk mendapatkan source code atau script backup restore database, silahkan download melalui link diatas, jika link tidak aktif silahkan hubungi kami melalui SMS atau email atau melalui form komentar dan obrolan. Semoga dapat membantu.

Baca juga :

  • Script PHP Export To Excel
  • Script PHP Update Database MySQL | CRUD
  • Script Tampil Database dengan PHP MySQL | VIEW Data
  • Cara Membuat Laporan PDF dengan PHP dan MySQL
  • Cara Membuat Script Login Multiuser dengan PHP dan MySQL
  • Membuat Form Input Data dengan PHP dan MySQL
  • Script PHP untuk Cari Data pada Database MySQL
  • Membuat Form dan Script Edit Data dengan PHP MySQL

Script PHP Backup Restore Database MySQL

Tags: script backup restore php mysqli, backup restore database php mysql, php backup restore database, script backup restore database, backup restore database, script php backup restore database