sql导出导入备份恢复

来源:互联网 发布:cms监控软件操作说明 编辑:程序博客网 时间:2024/06/06 11:04
   public function db_download(){   $filename = I('sql');   //执行资源下载        // header("Content-Type:xls");// 接收类型        header("Content-Disposition:attachment;filename={$filename}");// 接收为 附件        // header("Content-Length:{$filesize}");// 接受大小        readfile("./Public/sql/{$filename}");// 输出文件   }
    public function localsql(){   if(!empty($_FILES['sqlpath']['tmp_name'])){   $config = array('savePath' => './Public/sql/','saveRule' => date ('Y-m-d.H-i-s.') .rand(100,999),);import('ORG.Net.UploadFile');$Upload = new UploadFile($config);$rst = $Upload -> uploadOne($_FILES['sqlpath']);if(!$rst){dump( $Upload -> getErrorMsg() );}else{$sqlname = $rst[0]['savename'];$path = './Public/sql/';   $cmd = 'mysql -h'.C('DB_HOST').' -u'.C('DB_USER').' -p'.C('DB_PWD').' '.C('DB_NAME').' < '.$path.$sqlname;      exec($cmd,$arr,$flag);   unlink($path.$sqlname);      if($flag == 0){   $this->redirect('Config/db_recover','',0.01,'<script>alert("导入成功");</script>');   }else{$this->redirect('Config/db_recover','',0.01,'<script>alert("导入失败");</script>');   }}   }    }
   // db恢复   public function db_recover(){   if(!empty($_POST)){   $path = './Public/sql/';   $Back = D('backup');   $id = I('post.id');   $data=$Back->select();   $sqlname = $Back -> where('id = ' . $id) -> getfield('sqlname');   $cmd = 'mysql -h'.C('DB_HOST').' -u'.C('DB_USER').' -p'.C('DB_PWD').' '.C('DB_NAME').' < '.$path.$sqlname;   exec($cmd,$arr,$flag);   if($flag == 0){   foreach($data as &$v){   $Back->save($v);   unset($v);   }   $this -> redirect('Config/db_recover' , '' , 0.01 , '<script>alert("导入成功");</script>');   }else{   $this -> redirect('Config/db_recover' , '' , 0.01 , '<script>alert("导入失败");</script>');   }   }else{   $this -> getdb(1);   $this -> getdb(2);   $this -> getdb(3);   $this -> getdb(4);   $this -> getdb(5);   $this -> getdb(6);   $this -> getdb(7);   $this->display();   }   }
// 数据库备份   public function db_backup(){   if(!empty($_POST)){   set_time_limit(0);   $path = APP_ROOT.'/Public/sql/';   // dump($path);   $Back = D('backup');   $_POST['sqlname'] = date('Y-m-d--H-i-s') . '.sql';$cmd = 'mysqldump -h '.C('DB_HOST').' -u'.C('DB_USER').' -p'.C('DB_PWD').' '.C('DB_NAME').' > '.$path.$_POST['sqlname'];   exec($cmd,$arr,$flag);   if($flag == 0){   $Back -> create();   if(  $Back->find( I('post.id') )  ){   $sqlname = $Back -> where('id = ' . I('post.id')) -> getfield('sqlname');   $back = $Back -> where('id = ' . I('post.id')) -> setfield('sqlname' , $_POST['sqlname']);   unlink($path.$sqlname);   }else{   $back = $Back -> add();   }   }      if( $back ){   $this -> redirect('Config/db_backup' , '' , 0.01 , '<script>alert("备份成功");</script>');   }else{   $this -> redirect('Config/db_backup' , '' , 0.01 , '<script>alert("备份失败");</script>');   }   }else{   $this -> getdb(1);   $this -> getdb(2);   $this -> getdb(3);   $this -> getdb(4);   $this -> getdb(5);   $this -> getdb(6);   $this -> getdb(7);   $this->display();   }   }
  // 获取当前备份   private function getdb($id){   $Back = D('backup');   $assign = 'db'.$id;   $sqlname = $Back -> where('id = ' . $id) -> getfield('sqlname');   $this->assign($assign , $sqlname);   }





原创粉丝点击