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自动更新新闻DIY
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
PHP Pear 安装及使用
Mar 19 PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
PHP+MYSQL中文乱码问题
Jul 01 PHP
php中类和对象:静态属性、静态方法
Apr 09 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
微信支付之JSAPI公众号支付详解
May 15 PHP
PHP数组实际占用内存大小原理解析
Dec 11 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
通过文字传递创建的图形按钮
2006/10/09 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
js实现一个简单的数字时钟效果
2017/03/29 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
python 读写文件,按行修改文件的方法
2018/07/12 Python
python tkinter canvas使用实例
2019/11/04 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
工程测量与监理专业应届生求职信
2013/11/27 职场文书
机械制造专业个人的自我评价
2013/12/28 职场文书
参观考察邀请函范文
2014/01/29 职场文书
幼师求职自荐信
2014/05/31 职场文书
服务理念口号
2014/06/11 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript