kali ini saya akan share tutorial cara membuat backup database dengan menggunakan PHP, dalam tutorial ini contoh database yang akan di backup adalah MySQL, dengan menggunakan backup database ini anda tidak perlu membackup dari PhpMyAdmin atau dari cpanel karena dengan ini anda bisa menempatkan kode backup database ini di dalam web aplikasi yang sudah anda buat maupun yang sedang di kerjakan.
karena satu tugas yang paling penting setiap pengembang web aplikasi adalah perlunya sering melakukan backup database, padahal sebagian besar web hosting baik yang free maupun berbayar tidak mengijinkan exec() di dalam PHP. mungkin dengan tutorial ini bisa menjadi alternatif untuk membackup database anda
Ok petama buatlah projek dengan nama terserah anda kemudian buat file koneksi.php dan simpan di dalam projek yang sudah anda buat, lalu salin kode berikut
<?php $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'dbiubttgis'; $conn = mysql_connect($host, $user, $pass); mysql_select_db($db, $conn);untuk $host, $user, $pass dan $db, ganti dan sesuaikan dengan database yang akan anda backup
selanjutnya buat file dengan nama function.php dan simpan file di dalam projek yang sudah anda buat, lalu salin kode berikut
<?php // set function backup function backup_db($table = '*') { $result = null; $tables = array(); // check table yang akan di backup if ($table == '*') { $sql = 'SHOW TABLES'; $rs = mysql_query($sql) or die ($sql); while ($row = mysql_fetch_array($rs)) { $name = $row[0]; array_push($tables, $name); } } else { $tables = is_array($table) ? $table : explode(',', $table); } // loop table foreach ($tables as $table) { // create table $sql = 'SHOW CREATE TABLE '.$table; $rs = mysql_query($sql); $row = mysql_fetch_array($rs); $create_table = $row[1]; // show data table $sql = 'SELECT * FROM '.$table; $rs = mysql_query($sql); // set field per table $fields = mysql_num_fields($rs); // create comment table $result .= "--------------------\n"; $result .= '-- CREATE TABLE '.$table."\n"; $result .= "--------------------\n"; $result .= 'DROP TABLE '.$table.";\n"; $result .= $create_table."\n\n"; // loop field per table for ($i=0; $i<$fields; $i++) { // loop data table while($row = mysql_fetch_array($rs)) { $result .= 'INSERT INTO '.$table.' VALUES ('; // loop value field per table for ($j=0; $j<$fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = preg_replace('/\n/i','\\n',$row[$j]); if (isset($row[$j])) { $result .= '"'.$row[$j].'"'; } else { $result .= 'NULL'; } $result .= $j < ($fields - 1) ? ', ' : ''; } $result .= ");\n"; } } $result .= "\n\n\n"; } // simpan file sql $handle = fopen('db-backup-'.time().'-'.md5(implode(',', $tables)).'.sql', 'w+'); fwrite($handle, $result); fclose($handle); }file function ini yang akan memproses backup dari database yang sudah anda tentukan di file koneksi
dan yang terakhir buat file dengan nama index.php kemudian simpan di dalam projek yang sudah anda buat lalu salin kode berikut
<?php // load koneksi dan function require_once __DIR__.'/koneksi.php'; require_once __DIR__.'/function.php'; // show table dari database $sql = 'SHOW TABLES'; $rs = mysql_query($sql) or die ($sql); if (isset($_POST['backup'])) { backup_db($_POST['table']); } ?> <!DOCTYPE html> <html> <head> <title>MEMBUAT BACKUP DATABSE SENDIRI</title> <script type="text/javascript"> window.onload = function() { _('all-table', 'id').addEventListener('click', function(e) { var checked = _('all-table', 'id').checked, tables = _('table', 'class'); for(var i=0; i<tables.length; i++) { if (checked) { tables[i].checked = true; } else { tables[i].checked = false; } } }); } function _(element, type) { var e = type == 'id' ? document.getElementById(element) : document.getElementsByClassName(element); return e; } </script> </head> <body style="font-style: Verdana; font-size: 14px"> <form method="POST"> <h3>LIST TABLE</h3> <hr /> <label><input type="checkbox" id="all-table" /> <b>Semua table</b></label>< br /> <?php while ($row = mysql_fetch_array($rs)) { ?> <label><input type="checkbox" name="table[]" class="table" value="<?php echo $row[0]; ?>" /> <?php echo $row[0]; ?></label>< br /> <?php } ?> <hr /> <button type="submit" name="backup">BACKUP DATABASE</button> <p>* pilih table yang akan anda backup</p> </form> </body> </html>sekarang buka projek yang sudah anda buat dengan browser, jika tidak terjadi error maka anda akan mendapatkan tampilan dengan semua table yang ada di databse yang sudah anda tentukan, setelah itu coba anda ceklist salah satu table atau lebih kemudian klik button backup database, setelah itu buka projek yang sudah anda buat anda akan menemukan file bari dengan nama db-backup-... dengan ekstensi .sql
dalam tutorial ini saya membackup table categories dengan isi file .sql sebagai berikut
ada 3 untuk menggunakan function backup_db yaitu :
1. backup_db('*') jika di jalankan dalam script maka semua table yang ada di database anda akan di backup
2. backup_db('table_1, table_2') jika di jalankan dalam script maka table_1 dan table_2 table yang ada di database anda akan di backup
3. backup_db(array('table_1', 'table_2')) jika di jalankan dalam script maka table_1 dan table_2 table yang ada di database anda akan di backup
cara 2 dan 3 akan menghasilkan output yang sama, jadi anda hanya perlu memilih salah satu dari ke 3 cara di atas
Ok. sampai disini dulu tutorial kali ini selamat mencoba dan semoga bisa bermanfaat
ArenaDomino Partner Terbaik Untuk Permainan Kartu Anda!
ReplyDeleteHalo Bos! Selamat Datang di ( arenakartu.org )
Arenadomino Situs Judi online terpercaya | Dominoqq | Poker online
Daftar Arenadomino, Link Alternatif Arenadomino Agen Poker dan Domino Judi Online Terpercaya Di Asia
Daftar Dan Mainkan Sekarang Juga 1 ID Untuk Semua Game
ArenaDomino Merupakan Salah Satu Situs Terbesar Yang Menyediakan 9 Permainan Judi Online Seperti Domino Online Poker Indonesia,AduQQ & Masih Banyak Lain nya,Disini Anda Akan Nyaman Bermain :)
Game Terbaru : Perang Baccarat !!!
Promo :
- Bonus Rollingan 0,5%, Setiap Senin
- Bonus Referral 20% (10%+10%), Seumur Hidup
Wa :+855964967353
Line : arena_01
WeChat : arenadomino
Yahoo! : arenadomino
Situs Login : arenakartu.org
Kini Hadir Deposit via Pulsa Telkomsel / XL ( Online 24 Jam )
Min. DEPO & WD Rp 20.000,-
INFO PENTING !!!
Untuk Kenyamanan Deposit, SANGAT DISARANKAN Untuk Melihat Kembali Rekening Kami Yang Aktif Sebelum Melakukan DEPOSIT di Menu SETOR DANA.