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 变量定义和变量替换的方法
Jul 30 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
php 自定义错误日志实例详解
Nov 12 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 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中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
React Hooks的深入理解与使用
2018/11/12 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
Python学习之os模块及用法
2020/06/03 Python
python Scrapy框架原理解析
2021/01/04 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
品学兼优的大学生自我评价
2013/09/20 职场文书
春风行动实施方案
2014/03/28 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
吨的认识教学反思
2014/04/27 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android