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 相关文章推荐
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
分享PHP计算两个日期相差天数的代码
Dec 23 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
PHP类和对象相关系统函数与运算符小结
Sep 28 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
PHP 模拟登陆功能实例详解
Sep 10 PHP
laravel实现按月或天或小时统计mysql数据的方法
Oct 09 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 JSON中文乱码的解决方法详解
2013/06/06 PHP
php调用shell的方法
2014/11/05 PHP
php树型类实例
2014/12/05 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
react项目从新建到部署的实现示例
2021/02/19 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
python函数局部变量用法实例分析
2015/08/04 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
基于Python中的yield表达式介绍
2019/11/19 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
演讲主持词
2014/03/18 职场文书
销售员态度差检讨书
2014/10/26 职场文书
英语辞职信范文
2015/02/28 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书