当前位置:首页 > CMS教程 > Thinkphp > 列表

TP5框架实现的数据库备份功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-24 08:33:00 浏览: 评论:0 

这篇文章主要介绍了TP5框架实现的数据库备份功能,结合实例形式分析了TP5数据库备份功能相关原理及实现方法,需要的朋友可以参考下。

本文实例讲述了TP5框架实现的数据库备份功能,分享给大家供大家参考,具体如下:

1、效果图

TP5框架实现的数据库备份功能示例

2、下载扩展类(  \extands\org\Baksql.php)

3、在  \public\static  里新建一个data 文件夹用来存放 .sql  的文件

4、使用方法

controller

  1. <?php 
  2. namespace app\index\controller; 
  3.    
  4. use think\Controller; 
  5.    
  6. class Backup extends Controller 
  7.  //数据库备份 
  8.  public function bak(){ 
  9.   $type=input("tp"); 
  10.   $name=input("name"); 
  11.   $sql=new \org\Baksql(\think\Config::get("database")); 
  12.   switch ($type
  13.   { 
  14.    case "backup"//备份 
  15.     $info = $sql->backup(); 
  16.     $this->success("$info",'index/backup/bak'); 
  17.     break
  18.    case "dowonload"//下载 
  19.     $info = $sql->downloadFile($name); 
  20.     $this->success("$info",'index/backup/bak'); 
  21.     break
  22.    case "restore"//还原 
  23.     $info = $sql->restore($name); 
  24.     $this->success("$info",'index/backup/bak'); 
  25.     break
  26.    case "del"//删除 
  27.     $info = $sql->delfilename($name); 
  28.     $this->success("$info",'index/backup/bak'); 
  29.     break
  30.    default//获取备份文件列表 
  31.     return $this->fetch("bak",["list"=>$sql->get_filelist()]); 
  32.   } 
  33.  } 

view

  1. <!--我用的是 H+ 的模板,样式可以自己调--> 
  2. <body class="gray-bg"
  3. <div class="wrapper wrapper-content animated fadeInRight"
  4.  <div class="row"
  5.   <div class="col-sm-12"
  6.    <div class="ibox float-e-margins"
  7.     <div class="ibox-title"
  8.      <h5>数据库备份</h5> 
  9.      <div class="ibox-tools"
  10.       <a class="collapse-link"
  11.        <i class="fa fa-chevron-up"></i> 
  12.       </a> 
  13.      </div> 
  14.     </div> 
  15.     <div class="ibox-content"
  16.      <div class=""
  17.       <a class="btn btn-primary " href="{:url('bak',['tp'=>'backup'])}" rel="external nofollow" οnclick="return confirm('备份数据的时间较长,确定要备份所有数据吗?')"><i class="glyphicon glyphicon-plus"></i> <span class="bold">添加备份</span></a> 
  18.      </div> 
  19.      <table class="table table-striped table-bordered table-hover dataTables-example" style="text-align: center"
  20.       <thead> 
  21.       <tr> 
  22.        <td>序号</td> 
  23.        <td>备份名称</td> 
  24.        <td>备份时间</td> 
  25.        <td>备份大小</td> 
  26.        <td>操作</td> 
  27.       </tr> 
  28.       </thead> 
  29.       <tbody> 
  30.       {volist name="list" id="vo"
  31.       <tr class="gradeX" > 
  32.        <td>{$key+1}</td> 
  33.        <td>{$vo.name}</td> 
  34.        <td>{$vo.time}</td> 
  35.        <td>{$vo.size}</td> 
  36.        <td width="25%"
  37.         <a href="{:url('bak',['tp'=>'dowonload','name'=>$vo.name])}" rel="external nofollow" class="btn btn-success "><i class="glyphicon glyphicon-download-alt"></i> <span class="bold">下载</span></a> 
  38.         <a href="{:url('bak',['tp'=>'restore','name'=>$vo.name])}" rel="external nofollow" class="btn btn-info " οnclick="return confirm('备份还原后仅会显示当前备份的数据库的信息,您确定还原备份吗 ?')"><i class="glyphicon glyphicon-repeat"></i> <span class="bold">还原</span></a> 
  39.         <a href="{:url('bak',['tp'=>'del','name'=>$vo.name])}" rel="external nofollow" class="btn btn-warning" οnclick="return confirm('数据库备份一旦删除不可找回,您确定操作吗?')"><i class="fa fa-warning"></i> <span class="bold">删除</span></a> 
  40.        </td> 
  41.       </tr> 
  42.       {/volist} 
  43.       </tbody> 
  44.      </table> 
  45.     </div> 
  46.    </div> 
  47.   </div> 
  48.  </div> 
  49. </div>  
  50. </body> 

5、Refresh the web page!!!over,over,over

Tags: TP5数据库备份

分享到: