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 13 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
关于php fread()使用技巧
Jan 22 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
从wamp到xampp的升级之路
Apr 08 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
Laravel框架控制器的request与response用法示例
Sep 30 PHP
laravel model 两表联查示例
Oct 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 simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
基于python实现把图片转换成素描
2019/11/13 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
Python的logging模块基本用法
2020/12/24 Python
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
绩效工资分配方案
2014/01/18 职场文书
公司总经理岗位职责
2014/03/15 职场文书
学术诚信承诺书
2014/05/26 职场文书
个人简历自荐信
2014/06/26 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
Nginx配置https的实现
2021/11/27 Servers