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中的函数嵌套层数限制分析
Jun 13 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 PHP
CI框架Session.php源码分析
Nov 03 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
Jan 11 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
PHP打印输出函数汇总
Aug 28 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
PHP数组array类常见操作示例
May 15 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中的时间显示
2007/01/18 PHP
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
thinkphp分页实现效果
2016/10/13 PHP
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
node.js实现的装饰者模式示例
2017/09/06 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
Python实现简单的代理服务器
2015/07/25 Python
Python快速从注释生成文档的方法
2016/12/26 Python
Python创建xml文件示例
2017/03/22 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
python判断链表是否有环的实例代码
2020/01/31 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
宾馆总经理岗位职责
2014/02/14 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
中华魂演讲稿
2014/05/13 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python