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 选项及相关信息函数库
Dec 04 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
Feb 03 PHP
php自动加载方式集合
Apr 04 PHP
PHP模块化安装教程
Jun 01 PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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生成条形图的方法
2014/12/10 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
php实现用户登陆简单实例
2017/04/04 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
详解Python发送email的三种方式
2018/10/18 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
总账会计岗位职责
2014/03/13 职场文书
师德先进个人材料
2014/12/20 职场文书
建党伟业观后感
2015/06/01 职场文书
单位证明范文
2015/06/18 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
小程序实现文字循环滚动动画
2021/06/14 Javascript
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python