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 FPDF类库应用实现代码
Mar 20 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
PHP获取文件行数的方法
Jun 10 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
php接口实现拖拽排序功能
Apr 23 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
PHP中关于php.ini参数优化详解
Feb 28 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 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
javascript的事件描述
2006/09/08 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
Python延时操作实现方法示例
2018/08/14 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
python3获取当前目录的实现方法
2019/07/29 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
Python3监控疫情的完整代码
2020/02/20 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
致铅球运动员加油稿
2014/02/13 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
2015大学生实训报告
2014/11/05 职场文书
先进个人材料怎么写
2014/12/30 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript