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 相关文章推荐
echo, print, printf 和 sprintf 区别
Dec 06 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
php服务器的系统详解
Oct 12 PHP
深入分析PHP设计模式
Jun 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自定义的格式化时间示例代码
2013/12/05 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
js实现左右两侧浮动广告
2018/07/09 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
翻译专业应届生求职信
2013/11/23 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
食品安全检查制度
2014/02/03 职场文书
理发店策划方案
2014/06/05 职场文书
python 调用js的四种方式
2021/04/11 Python
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript