PHP Veritabanı Yedekle ve Geri Yükle

PHP Veritabanı Yedekle ve Geri Yükle

yedekle.php

<?php

  $connection = mysqli_connect('localhost','root','','test');
  
  $tables = array();
  $result = mysqli_query($connection,"SHOW TABLES");
  while($row = mysqli_fetch_row($result)){
    $tables[] = $row[0];
  }
  
  $return = '';
  foreach($tables as $table){
    $result = mysqli_query($connection,"SELECT * FROM ".$table);
    $num_fields = mysqli_num_fields($result);
    
    $return .= 'DROP TABLE '.$table.';';
    $row2 = mysqli_fetch_row(mysqli_query($connection,"SHOW CREATE TABLE ".$table));
    $return .= "\n\n".$row2[1].";\n\n";
    
    for($i=0;$i<$num_fields;$i++){
      while($row = mysqli_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";
  }
  
  //save file
  $handle = fopen("backup.sql","w+");
  fwrite($handle,$return);
  fclose($handle);
  echo "Successfully backed up";

geriyukle.php

<?php

$connection = mysqli_connect('localhost','root','','test');

$filename = 'backup.sql';
$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';