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


Posted in PHP onApril 05, 2020

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

1、效果图

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

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

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

4、使用方法

controller

<?php
namespace app\index\controller;
 
use think\Controller;
 
class Backup extends Controller
{
 //数据库备份
 public function bak(){
  $type=input("tp");
  $name=input("name");
  $sql=new \org\Baksql(\think\Config::get("database"));
  switch ($type)
  {
   case "backup": //备份
    $info = $sql->backup();
    $this->success("$info",'index/backup/bak');
    break;
   case "dowonload": //下载
    $info = $sql->downloadFile($name);
    $this->success("$info",'index/backup/bak');
    break;
   case "restore": //还原
    $info = $sql->restore($name);
    $this->success("$info",'index/backup/bak');
    break;
   case "del": //删除
    $info = $sql->delfilename($name);
    $this->success("$info",'index/backup/bak');
    break;
   default: //获取备份文件列表
    return $this->fetch("bak",["list"=>$sql->get_filelist()]);
  }
 }
}

view

<!--我用的是 H+ 的模板,样式可以自己调-->
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
 <div class="row">
  <div class="col-sm-12">
   <div class="ibox float-e-margins">
    <div class="ibox-title">
     <h5>数据库备份</h5>
     <div class="ibox-tools">
      <a class="collapse-link">
       <i class="fa fa-chevron-up"></i>
      </a>
     </div>
    </div>
    <div class="ibox-content">
     <div class="">
      <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>
     </div>
     <table class="table table-striped table-bordered table-hover dataTables-example" style="text-align: center">
      <thead>
      <tr>
       <td>序号</td>
       <td>备份名称</td>
       <td>备份时间</td>
       <td>备份大小</td>
       <td>操作</td>
      </tr>
      </thead>
      <tbody>
      {volist name="list" id="vo"}
      <tr class="gradeX" >
       <td>{$key+1}</td>
       <td>{$vo.name}</td>
       <td>{$vo.time}</td>
       <td>{$vo.size}</td>
       <td width="25%">
        <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>
        <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>
        <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>
       </td>
      </tr>
      {/volist}
      </tbody>
     </table>
    </div>
   </div>
  </div>
 </div>
</div> 
</body>

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

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PHP小教程之实现双向链表
Jun 12 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 #PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 #PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 #PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 #PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 #PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 #PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 #PHP
You might like
11个PHP 分页脚本推荐
2011/08/15 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
CI框架Session.php源码分析
2014/11/03 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
在django view中给form传入参数的例子
2019/07/19 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
Python3运算符常见用法分析
2020/02/14 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
什么是python类属性
2020/06/10 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
教师党员承诺书
2014/03/25 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
车间安全生产标语
2014/06/06 职场文书
办公室个人总结
2015/02/28 职场文书
2019假期福利管理制度!
2019/07/15 职场文书