Assalamu'alaikum wr.wb.
A. Pengertian
Menurut wikipedia bahasa Indonesia, Dalam teknologi informasi, 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.
B. Latar Belakang
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.
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.
C. Alat dan Bahan
- SublimeText
- OS XUbuntu 16.10
- Web Browser
- Koneksi Internet
- PHP 5.6
D. Tujuan
Bertujuan untuk membackup data dalam database yang kita perlukan dengan menggunakan code php.
E. Tahap Pelaksanaan
1. Buka sublimetext dengan Menu -> ketikkan pada pencarian SublimeText.
2. Buat file dengan nama koneksi dengan format .php.
3. File tersebut kita akan isi dengan coding seperti dibawah ini.
<?php
$host = "localhost";
$usrname = "root";
$pass = "....";
$db = "...";
mysql_connect($host, $usrname, $pass);
mysql_select_db(pos);
?>
$host = "localhost";
$usrname = "root";
$pass = "....";
$db = "...";
mysql_connect($host, $usrname, $pass);
mysql_select_db(pos);
?>
4. Berikutnya kita akan membuat file baru dengan nama "function" dengan format .php. Berikut adalah codingnya.
<?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);
}
?>
// 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);
}
?>
5. Selanjutnya kita buat file baru dengan nama index.php codingnya seperti dibawah ini.
<?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>
// 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>
6. Dan hasilnya akan seperti dibawah ini.
F. Kesimpulan
Dari pembahasan diatas dapat tarik kesimpulan bahwa cara membackup database tidak hanya menggunakan tool-tool pengolahan database tapi kita juga bisa menggunakan coding php.
G. Referensi
- https://cahbiyen.blogspot.co.id/2016/02/membuat-backup-databse-sendiri.html
- https://id.wikipedia.org/wiki/Backup
Sekian dan Terimakasih.
SMK Bisa!!
Wassalamu'alaikum wr.wb.
0 komentar:
Posting Komentar