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 SQL之where语句生成器
Mar 24 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
Oct 31 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
10个php函数实用却不常见
Oct 13 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
php日期操作技巧小结
Jun 25 PHP
Laravel 加载第三方类库的方法
Apr 20 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 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使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
JS 对象介绍
2010/01/20 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
Python实现的简单dns查询功能示例
2017/05/24 Python
Python查询IP地址归属完整代码
2017/06/21 Python
微信跳一跳游戏python脚本
2020/04/01 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
keras 多任务多loss实例
2020/06/22 Python
python使用建议与技巧分享(二)
2020/08/17 Python
Python容器类型公共方法总结
2020/08/19 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
管事部库房保管员岗位职责
2014/02/21 职场文书
部门年终奖分配方案
2014/05/07 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
钱学森观后感
2015/06/04 职场文书