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+MySQL的聊天室设计
Oct 09 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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/03/11 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
JavaScript多线程详解
2015/08/12 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
详解Python验证码识别
2016/01/25 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python网络编程之五子棋游戏
2020/05/14 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
函数指针的定义是什么
2016/08/14 面试题
十佳青年个人事迹材料
2014/01/28 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
幼儿教师研修感言
2014/02/12 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
2015年党日活动总结范文
2015/03/25 职场文书