Membuat Backup dan Restore MySQL Database di PHP – Bootstrap
Hai All ketemu lagi bersama saya portgastea pria tampan asli sunda he.he.he , tutorial kali ini adalah Backup dan Restore MySQL Database di PHP dengan tampilan Bootstrap.
Sangat disarankan untuk membuat backup secara teratur dari database kita, dengan membuat backup akan memungkinkan kita untuk membuat file cadangan untuk berjaga-jaga jika nantinya terjadi kerusakan pada database utama. Pada tutorial cara backup restore database MySQL di PHP ini kita berlatih untuk membuat backup sekaligus restore tabel dalam database MySQL dengan tampilan bootstrap agar lebih menarik di lihat.
Ok langsung saja kita buat script koneksi ke database seperti dibawah ini
<?php
// definisikan koneksi ke database
$server = "localhost";
$username = "root";
$password = "12345";
$database = "tutorial";
// Koneksi dan memilih database di server
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>
kita buat file index seperti dibawah ini :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Kumpulan Contoh Aplikasi Andeznet</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="assets/css/bootstrap.css" rel="stylesheet" media="screen">
<link href="assets/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
<link href="assets/css/bootstrap.min.css" rel="stylesheet" media="screen">
<style>
body {
padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
<link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="../assets/js/html5shiv.js"></script>
<![endif]-->
<!-- Fav and touch icons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="assets/ico/logoandeznet.png">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="brand" href="http://andeznet.com">AndezNet</a>
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active"><a href="media.php">Home</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Contoh Aplikasi<b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a tabindex="-1" href="statistik.php">Statistik Pendaftar</a>
</li>
<li>
<a tabindex="-1" href="backuprestore.php">Backup Restore</a>
</li>
<li>
<a tabindex="-1" href="carialamat.php">Pencarian Alamat</a>
</li>
<li>
<a tabindex="-1" href="playerbootsrap/index.html">MP3 Player</a>
</li>
</ul>
</li>
<li><a href="#">About</a></li>
<li>
<a href="logout.php" id="logout" onclick="return confirm('Apakah Anda yakin?')">
<i class="ace-icon fa fa-power-off"></i>
Logout
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
</div>
</div>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="assets/js/jquery.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
</body>
</html>
Sekarang kita buat script PHP untuk backup & restore
<?php
//Download file backup ============================================
if(isset($_GET['nama_file']))
{
$file = $back_dir.$_GET['nama_file'];
if (file_exists($file))
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: private');
header('Pragma: private');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
else
{
echo "file {$_GET['nama_file']} sudah tidak ada.";
}
}
//Backup database =================================================
if(isset($_POST['backup']))
{
backup($file);
echo 'Backup database telah selesai <a style="cursor:pointer" href="'.$file.'" title="Download">Download file database</a>';
echo "<pre>";
print_r($return);
echo "</pre>";
}
else
{
unset($_POST['backup']);
}
//Restore database ================================================
if(isset($_POST['restore']))
{
restore($_FILES['datafile']);
echo "<pre>";
print_r($lines);
echo "</pre>";
}
else
{
unset($_POST['restore']);
}
?>
<?php
function restore($file) {
global $rest_dir;
$nama_file = $file['name'];
$ukrn_file = $file['size'];
$tmp_file = $file['tmp_name'];
if ($nama_file == "")
{
echo "Fatal Error";
}
else
{
$alamatfile = $rest_dir.$nama_file;
$templine = array();
if (move_uploaded_file($tmp_file , $alamatfile))
{
$templine = '';
$lines = file($alamatfile);
foreach ($lines as $line)
{
if (substr($line, 0, 2) == '--' || $line == '')
continue;
$templine .= $line;
if (substr(trim($line), -1, 1) == ';')
{
mysql_query($templine) or print('Query gagal \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />');
$templine = '';
}
}
echo "<center>Berhasil Restore Database, silahkan di cek.</center>";
}else{
echo "Proses upload gagal, kode error = " . $file['error'];
}
}
}
function backup($nama_file,$tables = '')
{
global $return, $tables, $back_dir, $database ;
if($tables == '')
{
$tables = array();
$result = @mysql_list_tables($database);
while($row = @mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}else{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}
$return = '';
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 IF EXISTS ".$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($back_dir.$nama_file,'w+');
fwrite($handle, $return);
fclose($handle);
}
?>
Sisipkan script php di atas di file index.php setelah <div class=”container”> setelah itu kita jalankan di localhost http://localhost/tutorial , jika sudah benar maka akan tampil seperti gambar di bawah ini .
Untuk restore nya seperti ini
Ok selesai sudah tutorial kali ini,Untuk Download SourceCode bisa langsung download Aplikasi KSC Ver.1.0.0, di dalamnya ada form login, register,backup,restore & kumpulan soucecode dari Tutorial AndezNET.com saya bagikan GRATIS.
tanya pas restore itu ukurannya kebesaran gmn caranya agar bs suksess restor database gt..
Berapapun ukuran besar database nya Insya Allah bisa di restore, mungkin membutuhkan waktu agak lama untuk restore dengan ukuran yg besar
Terima kasih share backup db nya, tapi saya coba ada permasalahan saat download file sql tidak bekerja, tidak langsung download file .sql melainkan ke tab baru.
coba cari n cek lagi script ini gan
if(isset($_POST[‘backup’]))
{
backup($file);
echo ‘Backup database telah selesai Download file database‘;
echo “
“;
}
else
{
unset($_POST[‘backup’]);
}
koc gak bisa di download ya ??
apakah muncul eror ? erornya apa?