-->

Cara Mudah Backup MySQL database dengan PHP script

Cara Mudah Backup MySQL database di PHP

Backup database merupakan hal paling penting, karena kita tidak pernah tahu kapan ada cracker yang merusak database, maka dari itu backup database menjadi hal yang paling penting bahkan sangat perlu dijadwalkan baik daily backup maupun weekly backup, kali ini saya akan bahas cara mudah backup MySQL database di PHP.

Langsung saja tanpa basa basi silahkan anda copy dan pastekan kode  di bawah ini kemudian simpan dengan nama backup-database.php, lanjut sesuaikan host, username, password dan database name yang akan anda backup, pastikan sesuai untuk koneksi database nya.

<?php

// Database configuration
$host = "localhost";
$username = "root";
$password = "";
$database_name = "invoice";

// Get connection object and set the charset
$conn = mysqli_connect($host$username$password$database_name);
$conn->set_charset("utf8");


// Get All Table Names From the Database
$tables = array();
$sql = "SHOW TABLES";
$result = mysqli_query($conn$sql);

while ($row = mysqli_fetch_row($result)) {
    $tables[] = $row[0];
}

$sqlScript = "";
foreach ($tables as $table) {
    
    // Prepare SQLscript for creating table structure
    $query = "SHOW CREATE TABLE $table";
    $result = mysqli_query($conn$query);
    $row = mysqli_fetch_row($result);
    
    $sqlScript .= "\n\n" . $row[1] . ";\n\n";
    
    
    $query = "SELECT * FROM $table";
    $result = mysqli_query($conn$query);
    
    $columnCount = mysqli_num_fields($result);
    
    // Prepare SQLscript for dumping data for each table
    for ($i = 0$i < $columnCount$i ++) {
        while ($row = mysqli_fetch_row($result)) {
            $sqlScript .= "INSERT INTO $table VALUES(";
            for ($j = 0$j < $columnCount$j ++) {
                $row[$j] = $row[$j];
                
                if (isset($row[$j])) {
                    $sqlScript .= '"' . $row[$j] . '"';
                } else {
                    $sqlScript .= '""';
                }
                if ($j < ($columnCount - 1)) {
                    $sqlScript .= ',';
                }
            }
            $sqlScript .= ");\n";
        }
    }
    
    $sqlScript .= "\n"
}

if(!empty($sqlScript))
{
    // Save the SQL script to a backup file
    $backup_file_name = $database_name . '_backup_' . time() . '.sql';
    $fileHandler = fopen($backup_file_name'w+');
    $number_of_lines = fwrite($fileHandler$sqlScript);
    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); 
}
?>

langkah selanjutnya adalah pengujian, akses file backup-database.php via browser, dengan mengetikkan localhost/backup-databse.php Jika berhasil maka akan terdownload file dengan ekstensi .sql karena contoh diatas nama databsenya adalah invoice maka akan terdownload file SQL invoicebackup(waktu).sql

sampai tahap ini anda sudah berhasil membuat file backup database MySQL via PHP script, silahkan di implementasikan diaplikasi yang anda buat, jika ada ingin membuat backup terschedule daily, weekly maupun monthly maka anda perlu membuat cronjob yang anda sesuaikan waktu backup nya sesuai keinginan anda.

Semoga tutorial ini bermanfaat dan bisa menambah wawasan bagi anda yang membacanya, karena sebaik - baik ilmu adalah yang bermanfaat. Jangan pernah berhenti teruslah belajar karena hakikatnya belajar adalah seumur hidup.

Happy Coding & Programming

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel