Backup Database MySQL dengan PHP
![backup database dengan php](https://www.malasngoding.com/wp-content/uploads/2024/01/backup-database-dengan-php.jpg)
Backup database mysql dengan php adalah proses pencadangan atau mencadangkan database yang nantinya bisa digunakan kembali jika ada kerusakan pada database yang sedang digunakan. Untuk seorang programmer tentunya backup database ini dalah hal wajib disediakan.
Pada postingan artikel malasngoding.com kali ini akan mengupas cara-cara apa saja yang bisa dilakukan untuk membackup database mysql dengan php.
Backup Database MySQL dengan PHP
Ada dua cara yang bisa dilakukan dalam membackup database MySQL. Adapun cara tersebut antara lain :
- Backup database mysql menggunakan fitur yang ada di phpmyadmin
- Backup database mysql menggunakan script php
Backup Mysql Database Phpmyadmin
Cara backup database menggunakan phpmyadmin sudah umum diketahui. cara ini bisa dilakukan dengan memanfaatkan tool yang sudah disediakan. Adapun caranya adalah sebagai berikut :
- Buka browser dan akses ke halaman http://localhost/phpmyadmin/ (
aktifkan apache dan mysql yang ada pada xampp
terlebih dahulu
) - Pilih database yang akan di backup
- Pilih menu export dan klik tombol kirim
![backup database mysql dengan phpmyadmin](https://www.malasngoding.com/wp-content/uploads/2024/01/Backup-Database-MySQL-dengan-PHP-1024x452.png)
Backup Database Menggunakan Script PHP
Cara membackup data mysql menggunakan script php dapat dilakukan dengan mengikuti langkah-langkah seperti berikut :
Membuat Koneksi Database Dengan PHP
Langkah awal yaitu mengkoneksikan antara php dengan database yang akan Kita backup. Script koneksi database dapat dilihat pada kode berikut :
1 2 3 |
<?php $koneksi = mysqli_connect("localhost","root","","malasngoding"); ?> |
Baca Juga :
Dapatkan Semua Tabel Yang Ada Dalam Database
Langkah selanjutnya yaitu mengambil semua tabel yang ada dalam database. Caranya seperti script berikut:
1 2 3 4 5 6 |
// Ambil semua tabel dalam database $tables = array(); $result = mysqli_query($koneksi, "SHOW TABLES"); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } |
Sedikit keterangan dari kode diatas $result = mysqli_query($koneksi, "SHOW TABLES");
adalah perintah untuk menampilkan semua tabel. Nama-nama tabel yang terdapat dalam database disimpan dalam array dengan nama variabel $tables[]
.
Membuat Script SQL Untuk Mengambil Struktur Tabel
Langkah selanjutnya yaitu membuat script sql untuk mengambil struktur tabel yang terdapat dalam database yang akan Kita backup. Adapun scriptnya adalah sebagai berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$sqlScript = ""; foreach ($tables as $table) { // SQLscript untuk membuat struktur tabel $result = mysqli_query($koneksi, "SHOW CREATE TABLE $table"); $row = mysqli_fetch_row($result); $sqlScript .= "\n\n" . $row[1] . ";\n\n"; $result = mysqli_query($koneksi, "SELECT * FROM $table"); $columnCount = mysqli_num_fields($result); 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"; } |
Simpan File Database MYSQL
Langkah terakhir dalam membuat backup database mysql dengan php adalah menggunakan script untuk menyimpan data yang sebelumnya sudah di buat proses backup. Script yang digunakan untuk menyimpan file backup adalah sebagai berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
if(!empty($sqlScript)) { $backup_file_name ='nama_database' . '_backup_' . time() . '.sql'; $fileHandler = fopen($backup_file_name, 'w+'); $number_of_lines = fwrite($fileHandler, $sqlScript); fclose($fileHandler); 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); } |
Sedikit penjelasan dari kodingan diatas :
if(!empty($sqlScript))
script yang digunakan untuk mengecekap ketersediaan dari variabelsqlScript
$backup_file_name ='nama_database' . '_backup_' . time() . '.sql';
adalah penamaan dari database yang akan dibackup. Penamaan tersebut disimpan dalam ekstensi.sql
fopen($backup_file_name, 'w+');
fopen
digunakan untuk membuka file dalam hal ini file yang database. sedangkan w+ adalahpermission
dalam php untuk membuat dan membaca file.
Saya rasa untuk beberapa keterangan fungsi php bisa Anda baca di dokumentasi resmi dari php.net
Script Lengkap Cara Membuat Backup Database Mysql dengan PHP
Adapun script lengkap untuk menjalankan fungsi backup database dengan php adalah sebagai berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php $koneksi = mysqli_connect("localhost","root","","malasngoding"); $tables = array(); $result = mysqli_query($koneksi, "SHOW TABLES"); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } $sqlScript = ""; foreach ($tables as $table) { $result = mysqli_query($koneksi, "SHOW CREATE TABLE $table"); $row = mysqli_fetch_row($result); $sqlScript .= "\n\n" . $row[1] . ";\n\n"; $result = mysqli_query($koneksi, "SELECT * FROM $table"); $columnCount = mysqli_num_fields($result); 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)) { $backup_file_name ='nama_database' . '_backup_' . time() . '.sql'; $fileHandler = fopen($backup_file_name, 'w+'); $number_of_lines = fwrite($fileHandler, $sqlScript); fclose($fileHandler); 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); } ?> |
Hasil ketika script tersebut dijalankan adalah sebagai berikut :
![script backup database dengan php](https://www.malasngoding.com/wp-content/uploads/2024/01/script-backup-database-dengan-php-1024x645.jpg)
Pada gambar diatas ketika script backup nya di jalankan maka akan direspon dengan menentukan direktori penyimpanan file sql yang Kita backup.
Jika sobat membutuhkan source code backup database mysql dengan php dapat di download di link github di bawah ini.
Kesimpulan
Dari materi ini dapat disimpulkan bahwa bakup database sangat dibutuhkan dalam proses pembuatan aplikasi. Hal ini dikarenakan jika terjadi kerusakan maka database dapat di restor ulang dengan memanfaatkan database yang sudah di backup.
Dalam pembackupan database penulis menyarankan untuk menyediakan menu kusus pada aplikasi sehingga dapat memudahkan penggunakan dalam proses backup.
Untuk proses menyiapkan backup menggunakan PHP sendiri bisa di ikuti materi yang sudah disampaikan diatas.
Tutorial Menarik Lainnya
![membuat form login logout tanpa database](https://www.malasngoding.com/wp-content/uploads/2024/03/membuat-form-login-logout-tanpa-database-300x189.png)
Membuat Form Login Dengan PHP Tanpa Database
![Menghitung Selisih Waktu PHP](https://www.malasngoding.com/wp-content/uploads/2024/01/Menghitung-Selisih-Waktu-PHP-300x189.png)
![Menghitung Selisih Waktu PHP](https://www.malasngoding.com/wp-content/uploads/2024/01/Menghitung-Selisih-Waktu-PHP-300x189.png)
Menghitung Selisih Waktu Dengan PHP
![crud dengan ajax php mysqli](https://www.malasngoding.com/wp-content/uploads/2024/01/crud-dengan-ajax-php-mysqli-300x189.jpg)
![crud dengan ajax php mysqli](https://www.malasngoding.com/wp-content/uploads/2024/01/crud-dengan-ajax-php-mysqli-300x189.jpg)
Membuat CRUD menggunakan Ajax PHP – Hapus Data
![crud ajax php mysqli](https://www.malasngoding.com/wp-content/uploads/2024/01/crud-ajax-php-mysqli-1-300x189.jpg)
![crud ajax php mysqli](https://www.malasngoding.com/wp-content/uploads/2024/01/crud-ajax-php-mysqli-1-300x189.jpg)