Extract ZIP File Insert MYSQL From DBF File
Pada pembahasan sebelumnya mengenai Eksport DBF ke MYSQL dengan Menggunakan PHP sudah dijelaskan secara teknis untuk mengimport data dari DBF file. Pada tutorial kali ini pun tidak jauh berbeda seperti sebelumnya, perbedaannya adalah kita akan mulai dari mengekstrak file zip, kemudian kita mengambil file DBF tersebut hingga menghapus file DBF yang telah kita import ke MYSQL database kita.
/* Langkah Awal Kita Cek Apakah ada File ZIP di Folder Awal */
$dir = “C:/xampp/htdocs/zip/”;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (substr($file,-3)==’ZIP’){
$nmFile=$file; (Jika Ekstension File adalah ZIP)
}
}
closedir($dh);
}
}
/* Langkah Kedua Ekstrak ZIP File ke Folder Tujuan */
$zip = new ZipArchive;
if ($zip->open($nmFile) === TRUE) {
$zip->extractTo(‘C:/xampp/htdocs/zip/ekstrak/’);
$zip->close();
/* Cek Apakah File DBF ada, Jika Ada Insert Ke Array Dahulu */
if (file_exists(“MSBANK.DBF”)) {
$sql=”;
$sql=array();
$insert=dbase_open(“MSBANK.DBF”,0); /*Buka DBF File */
if ($insert){
echo “The file MSBANK.DBF exists<br>”;
$jum_record=dbase_numrecords($insert);
$nilai=0;
for ($ind=1;$ind<=$jum_record;$ind++){
$data=dbase_get_record($insert,$ind);
$sql[] = ‘(“‘.$data[0].’”,”‘.$data[1].’”,”‘.$data[2].’”,”‘.$data[3].’”,
“‘.$data[4].’”,”‘.$data[5].’”,”‘.$data[6].’”,”‘.$data[7].’”,”‘.$data[8].’”,”‘.$data[9].’”)’;
}
dbase_close($insert);
}
echo ‘Master Bank Rows ‘.$jum_record.’<br>’;
mysql_query(‘TRUNCATE TABLE `tempbank`’) or die (mysql_error());
$h=’INSERT INTO tempbank VALUES ‘.implode(‘,’, $sql) ;
mysql_query($h) or die (mysql_error());
/* Jika Data Sama Cek Perintah Update dengan Data Terbaru */
$sql=”;
$sql=array();
$ql=mysql_query(‘SELECT * FROM tempbank ORDER BY kodebank ASC’) or die (mysql_error());
while($rh=mysql_fetch_row($ql)){
$l=mysql_query(‘SELECT kodebank FROM bank WHERE kodebank=”‘.$rh[0].’”‘) or die (mysql_error());
$jj=mysql_num_rows($l);
if ($jj>0){
$update=’UPDATE bank SET
kodebank=”‘.$rh[0].’”,
namabank=”‘.$rh[1].’”,
digit=”‘.$rh[2].’”,
valid=”‘.$rh[3].’”,
createdate=”‘.$rh[4].’”,
createtime=”‘.$rh[5].’”,
createuser=”‘.$rh[6].’”,
lastupdate=”‘.$rh[7].’”,
lastupdatetime=”‘.$rh[8].’”,
lastupdateby=”‘.$rh[9].’”
WHERE kodebank =”‘.$rh[0].’”‘;
mysql_query($update) or die (mysql_error());
}else{
“‘.$rh[4].’”,”‘.$rh[5].’”,”‘.$rh[6].’”,”‘.$rh[7].’”,”‘.$rh[8].’”,”‘.$rh[9].’”)’;$sql[] = ‘(“‘.$rh[0].’”,”‘.$rh[1].’”,”‘.$rh[2].’”,”‘.$rh[3].’”,
}}
/* Jika Data Berbeda Insert Baru */
$h=’INSERT INTO bank VALUES ‘.implode(‘,’, $sql) ;
$jumArray = count($sql);
if ($jumArray>0){
mysql_query($h) or die (mysql_error());
}
} else {
echo “The file MSBANK.DBF does not exist”;
}
}else{
echo ‘Tidak Ada File ZIP yang diekstrak !’;
}
/* Hapus File DBF dan ZIP */
if (file_exists($nmFile)) {
unlink($nmFile);
}
if (file_exists(‘MSBANK.DBF’)) {
unlink(‘MSBANK.DBF’);
}
Script diatas sudah diujicoba di dapur sendiri
alias berdasarkan kasus yang saya pernah kerjakan ketika harus mengimport data dari DBF File. Jika ada cara yang lebih baik silahkan sharing disini. Sampai saat ini saya masih mencari tau bagaimana ekstrak ZIP File yang terenkripsi password dimana passwordnya kita ketahui. Mungkin ada yang tahu boleh sharing disini juga. Terima Kasih.
Semoga Bermanfaat

