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入门小知识
Mar 24 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 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
php 浮点数比较方法详解
2017/05/05 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
director.js实现前端路由使用实例
2015/02/03 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
对python中的logger模块全面讲解
2018/04/28 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
服装设计师职业生涯规划范文
2014/02/28 职场文书
生日宴会主持词
2014/03/20 职场文书
警示教育活动总结
2014/05/05 职场文书
期末复习计划
2015/01/19 职场文书
Pandas数据结构之Series的使用
2022/03/31 Python
python解析json数据
2022/04/29 Python
Python开发简易五子棋小游戏
2022/05/02 Python
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技