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调用Java对象的方法
Oct 09 PHP
php 常用字符串函数总结
Mar 15 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
PHP常见数组函数用法小结
Mar 21 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
php实现文章评论系统
Feb 18 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
js转换对象为xml
2017/02/17 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
js实现扫雷源代码
2020/11/27 Javascript
Python实现的简单算术游戏实例
2015/05/26 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Django 实现图片上传和下载功能
2020/12/31 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
养殖项目策划书范文
2014/01/13 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
运动会横幅标语
2014/06/17 职场文书
河童之夏观后感
2015/06/11 职场文书
初中体育课教学反思
2016/02/16 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书
python实现简单区块链结构
2021/04/25 Python