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之对抗Web扫描器的脚本技巧
Oct 01 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php广告加载类用法实例
Sep 23 PHP
php以post形式发送xml的方法
Nov 04 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
php数组冒泡排序算法实例
May 06 PHP
php 获取文件行数的方法总结
Oct 11 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 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
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
python中set()函数简介及实例解析
2018/01/09 Python
Python实现密码薄文件读写操作
2019/12/16 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
生物科学系大学生的自我评价
2013/12/20 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
好人好事事迹材料
2014/02/12 职场文书
家长建议怎么写
2014/05/15 职场文书
暂住证明怎么写
2015/06/19 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers