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(3)
Oct 09 PHP
用libtemplate实现静态网页生成
Oct 09 PHP
PHP与javascript的两种交互方式
Oct 09 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
TP5框架简单登录功能实现方法示例
Oct 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
15种PHP Encoder的比较
2007/03/06 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
python使用fork实现守护进程的方法
2017/11/16 Python
用python制作游戏外挂
2018/01/04 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
python版本五子棋的实现代码
2018/12/11 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
大学毕业生工作的自我评价
2013/10/01 职场文书
材料加工工程求职信
2014/02/19 职场文书
心理咨询承诺书
2014/05/20 职场文书
专科生就业求职信
2014/06/22 职场文书
搞笑的获奖感言
2014/08/16 职场文书
员工保密协议书
2014/09/27 职场文书
查摆剖析材料范文
2014/09/30 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python