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.ini中文版
Oct 09 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php 输出双引号&quot;与单引号'的方法
May 09 PHP
php中的比较运算符详解
Oct 28 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
PHP合并两个或多个数组的方法
Jan 20 PHP
yii框架使用分页的方法分析
Jul 25 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python单元测试unittest实例详解
2015/05/11 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
python实现聊天小程序
2018/03/13 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
django基础学习之send_mail功能
2019/08/07 Python
python TCP包注入方式
2020/05/05 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
开放系统互连参考模型
2016/06/29 面试题
公司建议书怎么写
2014/05/15 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
python flask框架快速入门
2021/05/14 Python
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP