Cara Backup Database MySQL Menggunakan PHP

Backup Database MySQL - Sebelum masuk pada pembahasan mengenai cara backup database MySQL dengan menggunakan bahasa pemrograman php alangkah baiknya kalau kita tahu terlebih dahulu maksud dan tujuan dari backup itu sendiri.

Backup Database


Menurut Wikipedia Backup adalah proses membuat data cadangan dengan cara menyalin atau membuat arsip data komputer sehingga data tersebut dapat digunakan kembali apabila terjadi kerusakan atau kehilangan.

Sedangkan tujuan dari backup itu sendiri sebenarnya yaitu untuk mengantisipasi agar data tetap terjaga apabila terjadi kerusakan ataupun data hilang dari sistem.

Jadi proses Backup database sangatlah diperlukan dalam membuat sistem aplikasi karena untuk mengantisipasi hal-hal yang tidak diinginkan apabila terjadi kerusakan pada sistem.

Oleh karena itu saya akan membahas atau memberikan tutorial kepada anda untuk membuat sebuat sistem Backup Database dengan menggunakan Bahasa pemrograman php, berikut ini adalah langkah-langkah yang bisa anda praktikan untuk membuat sebuah sistem Backup Database MySQL.

Langkah Awal
Langkah pertama yang harus dilakukan apabila anda belum membuat sebuah database MySQL maka anda harus membuatnya terlebih dahulu, akan tetapi manakala sudah membuat database cukup melanjutkan saja script yang akan saya bagikan ini.

Langkah Kedua 
Buka Text Editor yang anda miliki kemudian buatlah script Sebagai berikut .

<?php
//include our function
include 'function.php';

if(isset($_POST['backup'])){
//get credentails via post
$server = $_POST['server'];
$username = $_POST['username'];
$password = $_POST['password'];
$dbname = $_POST['dbname'];

//backup and dl using our function
backDb($server, $username, $password, $dbname);

exit();

}
else{
echo 'Fill up database credentail and name';
}

?>

Simpan dengan nama backup.php

Langkah Ketiga
Setelah membuat script backup.php selanjutnya yaitu membuat script fungsinya, seperti berikut ini


<?php

function backDb($host, $user, $pass, $dbname, $tables = '*'){
//make db connection
$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

//get all of the tables
if($tables == '*'){
$tables = array();
$sql = "SHOW TABLES";
$query = $conn->query($sql);
while($row = $query->fetch_row()){
$tables[] = $row[0];
}
}
else{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}

//getting table structures
$outsql = '';
foreach ($tables as $table) {
 
    // Prepare SQLscript for creating table structure
    $sql = "SHOW CREATE TABLE $table";
    $query = $conn->query($sql);
    $row = $query->fetch_row();
 
    $outsql .= "\n\n" . $row[1] . ";\n\n";
 
    $sql = "SELECT * FROM $table";
    $query = $conn->query($sql);
 
    $columnCount = $query->field_count;

    // Prepare SQLscript for dumping data for each table
    for ($i = 0; $i < $columnCount; $i ++) {
        while ($row = $query->fetch_row()) {
            $outsql .= "INSERT INTO $table VALUES(";
            for ($j = 0; $j < $columnCount; $j ++) {
                $row[$j] = $row[$j];
             
                if (isset($row[$j])) {
                    $outsql .= '"' . $row[$j] . '"';
                } else {
                    $outsql .= '""';
                }
                if ($j < ($columnCount - 1)) {
                    $outsql .= ',';
                }
            }
            $outsql .= ");\n";
        }
    }
 
    $outsql .= "\n";
}

// Save the SQL script to a backup file
    $backup_file_name = $dbname . '_backup.sql';
    $fileHandler = fopen($backup_file_name, 'w+');
    fwrite($fileHandler, $outsql);
    fclose($fileHandler);

    // Download the SQL backup file to the browser
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($backup_file_name));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($backup_file_name));
    ob_clean();
    flush();
    readfile($backup_file_name);
    exec('rm ' . $backup_file_name);

}

?>


Simpan dengan nama function.php

Langkah Keempat
Membuat tampilan awal/tampilan ketika sistem Backup Database ini dibuka, berikut ini adalah script lengkapnya.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>How to Backup MySQL Database using PHP</title>
<link rel="stylesheet" type="text/css" href="bootstrap4/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1 class="text-center" style="margin-top:30px;">Backup MySQL Database using PHP</h1>
<hr>
<div class="row justify-content-center">
<div class="col-sm-6">
<div class="card">
<div class="card-body">
<h3>Database Credential and Name</h3>
<br>
<form method="POST" action="backup.php">
    <div class="form-group row">
      <label for="server" class="col-sm-3 col-form-label">Server</label>
      <div class="col-sm-9">
        <input type="text" class="form-control" id="server" name="server" placeholder="ex 'localhost'" required>
      </div>
    </div>
    <div class="form-group row">
      <label for="username" class="col-sm-3 col-form-label">Username</label>
      <div class="col-sm-9">
        <input type="text" class="form-control" id="username" name="username" placeholder="ex 'root'" required>
      </div>
    </div>
    <div class="form-group row">
      <label for="password" class="col-sm-3 col-form-label">Password</label>
      <div class="col-sm-9">
        <input type="text" class="form-control" id="password" name="password" placeholder="db password">
      </div>
    </div>
    <div class="form-group row">
      <label for="dbname" class="col-sm-3 col-form-label">Database</label>
      <div class="col-sm-9">
        <input type="text" class="form-control" id="dbname" name="dbname" placeholder="database name to backup" required>
      </div>
    </div>
    <button type="submit" class="btn btn-primary" name="backup">Backup</button>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

Simpan dengan nama index.php kemudian buka dengan menggunkan web browser anda maka akan tampil seperti berikut :


Demikian langkah-langkah cara membuat Backup Database MySQL dengan mudah, untuk download Sourcecodenya silahkan klik dibawah ini

DOWNLOAD

Reactions

Post a Comment

0 Comments