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更新记录的代码
Jun 07 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
php cookie使用方法学习笔记分享
Nov 07 PHP
php页面防重复提交方法总结
Nov 25 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP精确计算功能示例
Nov 29 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中ADODB类详解
2008/03/25 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
js实现缓动动画
2020/11/25 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
python交互界面的退出方法
2019/02/16 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
python的sys.path模块路径添加方式
2020/03/09 Python
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
新学期教师寄语
2014/04/02 职场文书
幼儿园新年寄语
2014/04/03 职场文书
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
Docker官方工具docker-registry案例演示
2022/04/13 Servers