Membuat fungsi import/restore database MySQL dengan PHP - selamat malam sahabat coder. setelah pada tutorial sebelumnya kita sudah membahas tentang bagaimana cara meng export atau memback up database maka sekarang kita akan belajar bagaimana mengimport atau memasukan database yang sudah kita back up dan kita simpan dengan esktensi .sql untuk dimasukan lagi ke dalam database mySQL. seperti pada fungsi export yang sebenarnya fungsi import inipun sudah disediakan oleh GUI dari phpmyadmin. tetapi rasanya untuk kalangan awan IT yang kapasitasnya hanya pengguna sistem yang kita buat. tentu cara ini akan dianggapnya terlalu sulit untuk dipahami.
untuk itu kita perlu membuat fungsi inport database ini menjadi lebih mudah dalam artian hanya tinggal klik saja tanpa perlu buka ini itu segala macem. logika yang saya gunakan untuk membuat fungsi inport atau restore ini adalah sebagai seperti ini;
-pertama kita buat fungsi upload file, halaman ini digunakan untuk mengupload file .sql yang akan kita restore atau kita masukan lagi datanya ke dalam database.
berikut kodenya yang saya buat di halaman index.php
<!DOCTYPE html>
<html>
<head>
<title>export - import</title>
</head>
<body>
<h3>export & import database</h3>
<a href="data.php">lihat data</a><br>
<a href="backup.php">backup database</a><br><br>
<a href="backup_backup.sql" download=""> download database</a><br><br>
<!-- untuk upload file.sql -->
<form action="dbimport.php" method="post" enctype="multipart/form-data">
<b>restore</b><br><input type="file" name="upload"><br>
<button type="submit" name="kirim">kirim</button>
</form>
</body>
</html>
teman-teman bisa perhatikan pada kode yang memliki koment 'untuk upload file .sql' dan jangan lupa atribut enctype="multipart/form-data" karena kita akan mengupload sebuah file .sql layaknya sering kita pakai untuk mengupload file gambar.
langkah selanjutnya kira arahkan ke file dbimport.php, dan pada file inilah file inputan tadi diterima dan diolah untuk dimasukan ulang ke dalam database. berikut kode dbimport.php
<?php
$connection = mysqli_connect('localhost','root','','backup');
$filename = $_FILES['upload']['tmp_name'];
$handle = fopen($filename, "r+");
$contents = fread($handle, filesize($filename));
$sql = explode(';', $contents);
foreach ($sql as $query) {
$result = mysqli_query($connection, $query);
if($result){
echo '<tr><td><br></td></tr>';
echo '<tr><td>'.$query.'<b>success</b></td></tr>';
echo '<tr><td><br></td></tr>';
}
}
fclose($handle);
echo "successfully imported";
?>
keterangan kode :
- kode beris pertama untuk membuat koneksi dengan database
- kemudian buat variabel untuk menyimpan file.sql yang telah dikirim tadi
- lalu $handle dan $contens adalah variabel yang digunakan untuk menyimpan fungsi dari fopen() dan fread() yang dipakai untuk membuat fungsi import/.restore database.
-ditutup dengan fclose($handle).
setelah kode tersebut selesai coba jalankan fungsi import database ini.
jika berhasil hasilnya akan seperti ini
cukup mudah bukan.. selamat mencoba dan happy coding :D
judul export import tapi isinya import doang
ReplyDelete