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 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
PHP 图像尺寸调整代码
May 26 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
php处理restful请求的路由类分享
Feb 27 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
php获得刚插入数据的id 的几种方法总结
May 31 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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
javascript 节点排序 2
2011/01/31 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python中的引用知识点总结
2019/05/20 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
打印机墨盒:123Inkjets
2017/02/16 全球购物
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
Java的五个基础面试题
2016/02/26 面试题
医药专业应届毕业生求职信范文
2014/01/01 职场文书
高一政治教学反思
2014/01/28 职场文书
怎么写好自荐书
2014/03/02 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
捐资助学感谢信
2015/01/21 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
九年级英语教学反思
2016/02/15 职场文书
感谢信
2019/04/11 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电