citridia solution | Citridia soft | software house malang
Hubungi Kami : Email :
085755598020 (24 jam) citridia.solution@gmail.com
082333441826 (08.00-12.00) citridia.solution@yahoo.com
03415164331 (08.00-12.00) PIN : 2A52D3F8
Backup Dan Restore Dengan PHP

untukl sebuah web aplikasi, dimana pengolahan data selalu di lakukan dalam skala besar maka alangkah baiknya program tersebut memiliki fitur backup dan restore. sebenarnya backup restore di php dan mysql sangatlah mudah, beda dengan aplikasi dekstop. berikut cara backup dan restore data di php 

Backup 

untuk melakukan backup, secara logika kita harus mengambil semua data di mysql kemudian mengconvert data tersebut menjadi sebuah file.

baiklah langsung saja buatlah file php yang berisi syntax / function di bawah ini :

// pastikan anda sudah konek dengan database

 function backup_tables($tables="*",$nama='file_backup'){

 if($tables == '*')
 {
 $tables = array();
 $result = mysql_query('SHOW TABLES');
 while($row = mysql_fetch_row($result))
 {
  $tables[] = $row[0];
 }
 }
 else
 {
 $tables = is_array($tables) ? $tables : explode(',',$tables);
 }


 $alter=implode(',',$tables);
 $return='';
 $arrcons=array();
 foreach($tables as $table)
 {
 $result = mysql_query('SELECT * FROM '.$table);
 $num_fields = mysql_num_fields($result);

 $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
 //$return.= $row2[1].";\n\n";
 $strfok=strpos($row2[1],"CONSTRAINT");
 $endsfok=strpos($row2[1],"ENGINE");
 if($strfok>0){
 $return.= "\n\n".substr($row2[1],0,13).'IF NOT EXISTS'.substr($row2[1],12,($strfok-16)).substr($row2[1],$endsfok-3).";\n\n";
 $cons=substr($row2[1],$strfok,($endsfok-$strfok-3));
 $arrcons[$table]=$cons;
 }else{
 $return.= "\n\n".substr($row2[1],0,13).'IF NOT EXISTS'.substr($row2[1],12).";\n\n";
 }

 for ($i = 0; $i < $num_fields; $i++)
 {
 while($row = mysql_fetch_row($result))
 {
 $return.= 'INSERT INTO '.$table.' VALUES(';
 for($j=0; $j<$num_fields; $j++)
 {
 $row[$j] = addslashes($row[$j]);
 if (isset($row[$j])) { $return.= "'".$row[$j]."'" ; } else { $return.= "''"; }
 if ($j<($num_fields-1)) { $return.= ','; }
 }
 $return.= ");\n";
 }
 }
 $return.="\n\n\n\n";
 }
 $tanggal=date("d-F-Y");
 //alter tabel untuk meanmabhkan constraint
 $constraint="";
 foreach($arrcons as $in=>$vl){
 $constraint.="ALTER TABLE $in";
 $fork=array();
 $fk=explode(',',str_replace("\n","",$vl));
 foreach($fk as $fk){
 $fork[]="\nADD ".$fk;
  }
    $constraint.=implode(',',$fork).";\n\n";
  }

// aktifkan download window dan pack file ke format sql
   header("Content-Disposition: attachment; filename=".$nama.".sql");
   header("application/force-download");
   echo ' DROP DATABASE '.DB_NAME.'; create database '.DB_NAME.'; USE '.DB_NAME.'; '.$return.$constraint;
   exit;
}

backup_tables();

 dari script diatas kita telah mengambil data di database mysql kemudian kita meng generate ke file (*.sql) dan otomatis membuka download window

 

Restore

Untuk membuat script restore pada dasarnya kita membutuhkan file *.sql (hasil file backup script diatas) kemudian kita eksekusi degan multi query.

untuk multi query kita gunakan fungsi mysqli di php.

silahakan anda buat file php berisi script dibwah ini

DB_HOST="localhost";

DB_USER="root";

DB_PASS="";

DB_NAME="coba_data"

function restoreData($lokasi_file){
   $dbn = new mysqli (DB_HOST,DB_USER,DB_PASS,DB_NAME); // koneksi database dengan mysqli function
   $fh = fopen($lokasi_file, 'r');
   $theData = fread($fh, filesize($temp));
   fclose($fh);
   $que=$dbn->multi_query("$theData");

   return $que;
}

$lokasi_file="backup_data.sql";

restoreData($lokasi_file);

 dari script diatas kita sudah berhasil melakukan restore data ke database.

Demikian sedikit informasi tentang cara backup dan resore database di php semoga membantu dan bermanfaat bagi anda semua. jika kurang jelas silahkan kirimkan komentar dibawah.
Tunggu cara , tips dan trick dan tutorial php dan mysql lainya.,.

438
0




TULIS KOMENTAR (* anda dapat memberi komentar dengan menggunakan nama akun facebook anda.)
Nama Anda harus login ke www.facebook.com
Komentar