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 相关文章推荐
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
PHP 可阅读随机字符串代码
May 26 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php备份数据库类分享
Apr 14 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
PHP手机短信验证码实现流程详解
May 17 PHP
PHP中16个高危函数整理
Sep 19 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php防止网站被刷新的方法汇总
2014/12/01 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php中关于换行的实例写法
2019/09/26 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python文件的读写和异常代码示例
2017/10/31 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
android面试问题与答案
2016/12/27 面试题
法学专业毕业生自荐信范文
2013/12/18 职场文书
音乐教学案例
2014/01/30 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
2014年车间工作总结
2014/11/21 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
python Tkinter模块使用方法详解
2022/04/07 Python
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL