用TP5如何实现数据库备份功能?实现代码及步骤详解
Admin 2021-05-07 群英技术资讯 1580 次浏览
ThinkPHP5框架是PHP中常见的框架之一,这篇文章主要给大家分享如何利用TP5框架来实现的数据库备份功能,以下有效果图以及具体代码,对tp5实现数据库备份功能感兴趣的朋友就继续往下看吧。
1、效果图

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
关于使用tp5实现数据库备份功能的介绍就到这,上述代码有一定的借鉴价值,有需要的朋友可以参考参考,希望对大家学习有帮助,想要了解更多ThinkPHP5框架的相关内容大家可以继续关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
很多朋友问php扩展安装方法,下面就给大家php扩展安装方法步骤,本文也有详细的步骤介绍,对这方面有需求的朋友可以看一看,希望大家能有所收获。
一、Socket简介1、socket只不过是一个数据结构。2、使用这个socket数据结构去开始一个客户端和服务器之间的会话。3、服务器是一直在监听准备产生一个新的会话。当一个客户端连接服务器,它就打开服务器正在进行监听的一个端口进行会话。4、服务器端接受客户端的连接请求,那么就进行一次循环。现在这个客户端就能够发送信息到服务器,服务器也能发送信息给客户端。二、Socket变量产
PHP输出缓冲和发送header报错怎么办?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
在使用 PHP7 的时候,会发现在 PHP7 中包含了一个新的功能,即返回类型声明。返回类型声明指定一个函数应该返回的值的类型,可用的类型与参数声明中可用的类型相同。
php kohana框架设置路由:1、使用 Route:: set ();设置,每一个路由至少有一个默认default路由;2、讲请求转发到控制器上,默认是将请求转发到main控制中的index动作上。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008