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 date函数参数详解
Nov 27 PHP
php的一个登录的类 [推荐]
Mar 16 PHP
php读取数据库信息的几种方法
May 24 PHP
php实现mysql事务处理的方法
Dec 25 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
php实现URL加密解密的方法
Nov 17 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
TP5框架安全机制实例分析
Apr 05 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 date()日期时间函数详解
2010/05/16 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
Python中bisect的使用方法
2019/12/31 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
Django数据统计功能count()的使用
2020/11/30 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
客户代表实习人员自我鉴定
2013/09/27 职场文书
社区母亲节活动记录
2014/03/06 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书