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+DBM的同学录程序(4)
Oct 09 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
检查php文件中是否含有bom的函数
May 31 PHP
PHP实现邮件群发的源码
Jun 18 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
php网页病毒清除类
Dec 08 PHP
php通过记录IP来防止表单重复提交方法分析
Dec 16 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP实现 APP端微信支付功能
Jun 22 PHP
PHP中md5()函数的用法讲解
Mar 30 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
php语法检查的方法总结
2019/01/21 PHP
PDO::query讲解
2019/01/29 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
建筑项目策划书
2014/01/13 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
车辆工程专业求职信
2014/06/14 职场文书
房地产项目合作意向书
2015/05/08 职场文书
《法国号》教学反思
2016/02/22 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书