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 相关文章推荐
pw的一个放后门的方法分析
Oct 08 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
PHP读取文件内容的五种方式
Dec 28 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
详解php中 === 的使用
Oct 24 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
Laravel下生成验证码的类
Nov 15 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 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版自动生成文章摘要
2008/07/23 PHP
cmd下运行php脚本
2008/11/25 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
vue小白入门教程
2018/04/02 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
Python实现中一次读取多个值的方法
2018/04/22 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
自荐信的基本格式
2014/02/22 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
庆六一宣传标语
2014/10/08 职场文书
催款律师函范文
2015/05/27 职场文书