ThinkPHP5.0 数据库的备份、下载、还原、删除

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

参考文档:
https://blog.csdn.net/qq_42455095/article/details/84313754#commentBox
https://blog.csdn.net/qq_42249896/article/details/85238523
https://blog.csdn.net/cplvfx/article/details/86494487
自己整理了一个文档~~~
效果图:
在这里插入图片描述
一、下载类文件
https://github.com/joytom/db_backup
按照下图存放类文件
在这里插入图片描述
我对Baksql.php文件进行了一点改动,代码如下:
主要修改的是get_dbdata方法,我也做了标记

<?php
/**
 * 备份数据库的扩展类
*/
namespace org;

class Baksql {
   
   
    private $config=[];
    private $handler;
    private $tables = array();//需要备份的表
    private $begin; //开始时间
    private $error;//错误信息

    public function __construct($config) {
   
   
        /////////////记住创建这个存放备份文件目录,不然会报错////////////////////
        $config['path']=ROOT_PATH . 'public' . DS .'static'. DS .'data/'; //默认目录
        $config["sqlbakname"]=date("YmdHis",time()).".sql";//默认保存文件
        $this->config = $config;
        
        $this->begin = microtime(true);
        header("Content-type: text/html;charset=utf-8");
        $this->connect();
    }
    //首次进行pdo连接
    private function connect() {
   
   
        try{
   
   
           $this->handler =new \PDO("{$this->config['type']}:host={$this->config['hostname']};port={$this->config['hostport']};dbname={$this->config['database']};",
                $this->config['username'],
                $this->config['password'], 
                array(
                    \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES {$this->config['charset']};",
                    \PDO::ATTR_ERRMODE =>  \PDO::ERRMODE_EXCEPTION, 
                    \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC
                )); 
        }catch (PDOException $e) {
   
   
            die ("Error!: " . $e->getMessage() . "<br/>");
        }
        
    }
     /**
     * 查询
     * @param string $sql
     * @return mixed
     */
    private function query($sql = '')
    {
   
   
        $stmt = $this->handler->query($sql);
        $stmt->setFetchMode(\PDO::FETCH_NUM);
        $list = $stmt->fetchAll();
        return $list;
    }
     /**
     * 获取全部表
     * @param string $dbName
     * @return array
     */
    private function get_dbname($dbName = '*') {
   
   
         $sql = 'SHOW TABLES';
        $list = $this->query($sql);
        $tables = array();
        foreach ($list as $value)
        {
   
      
            $tables[] = $value[0];
        }
        return $tables;        
    }
    /**
     * 获取表定义语句
     * @param string $table
     * @return mixed
     */
    private function get_dbhead($table = '')
    {
   
   
        $sql = "SHOW CREATE TABLE `{$table}`";
        $ddl = $this->query($sql)[0][1] . ';';
        return $ddl;
    }
    /**
     * 获取表数据
     * @param string $table
     * @return mixed
     */
    private function get_dbdata($table = '')
    {
   
   
        $sql = "SHOW COLUMNS FROM `{$table}`";
        $list = $this->query($sql);
        //字段
        $columns = '';
        //需要返回的SQL
        $query = '';
        foreach ($list as $value)
        {
   
   
            $columns .= "`{$value[0]}`,";
        }
        $columns = substr($columns, 0, -1);
        $data = $this->query("SELECT * FROM `{$table}`");
        foreach ($data as $value)
        {
   
   
            $dataSql = '';
      /////////我的数据库中有 上传图片的路径带有 \特殊字符 备份时消失了////////////////
      /////////数据库时候路径中的反斜杠会丢失,所以导出的时候要再给他加一个反斜杠///////
            $value=array_map('addslashes', $value);//给预定义字符加反斜杠
            //原来的代码
//            foreach ($value as $v)
//            {
   
   
//                $dataSql .= "'{$v}',";
//            }

           
	/////////1.程序生成的代码,字段没有字符集;主要出现在varchar类型////
    /////////2.程序生成的代码,int字段的数据被加单引号''//////////////
             //修改
     		/**
             * 2019-07-25 xiaoxia  修改后
             * */
            //cp循环次数
            $cp_loop_time=0;
            foreach ($value as $v)
            {
   
   
                if(strpos($list[$cp_loop_time][1],'int') !== false || strpos($list[$cp_loop_time][1],'double') !== false )
                {
   
   
                    if($v==null)
                    {
   
   
                        $dataSql .= "NULL,";
                    }
                    else{
   
   
                        $dataSql .
基于thinkphp的mysql数据库备份还原类(好用) 基于thinkphp的mysql数据库备份还原类,想在你thinkphp开发的项目中加入mysql数据库备份还原功能的话,这是一个不错的选择 立即下载

相关推荐

Thinkphp数据库备份还原

Thinkphp数据库备份还原

thinkphp5.0数据库备份

首页说一下tp5.0的好处就是可以使用composer安装数据库备份类库,composer命令安装:composer require tp5er/tp5-databackup dev-master安装成功后会在项目文件夹vendor下自动生成数据库备份类库:以上步骤操作完成开始使用:1.新建个控制器,在控制器中建备份方法,想使用数据库备份类,就先use \tp5er\Backup;2.基本配置信息...

weixin_34240520的博客 566

thinkphp5.1 系统数据备份还原

thinkphp5.1 备份系统数据库还原数据库 支持多数据库链接

Tinkphp5.0数据库备份还原下载完整示例

备份文件效果图: 一、先写一个备份数据库类 Backup.php 小白可能会有疑问,为什么我要单独写成一个类?因为这个方法可能会多次调用,写成一个类,可以减少代码的重用,比如说手动备份要调用,每天定时自动备份也需要调用。好了,直接上代码: <?php namespace app\common; use think\Db; use think\Model; use think\Cookie; use think\Exception; /** * 备份数据库类 */ class Back

美奇软件开发工作室 741

php数据库备份下载,thinkphp数据库在线备份下载还原

创建好备份类,注意命名空间比如此时放到放到Thinkphp/Library/Org/Util/目录下```namespace Org\Util;class MySQLReback {private $config;private $content;private $dbName = array();const DIR_SEP = DIRECTORY_SEPARATOR;public functio...

weixin_36473398的博客 405

ThinkPHP5.0_tp5数据库备份下载还原删除

参考文章: TP---数据库备份下载还原删除 (这篇文章写的不是特别详细,个人感觉,但是,没有这篇文章就没有我的这篇文章) https://blog.csdn.net/qq_42455095/article/details/84313754#commentBox tp5进行数据库备份还原等一系列操作 (这篇文章还是挺详细的,不过和第一篇比还是比较细腻的,页面没有第一篇好看)...

橙-极纪元-JJYCheng 3562

baksql baksql.php,ThinkPHP5.0_tp5数据库备份下载还原删除

参考文章:TP---数据库备份下载还原删除(这篇文章写的不是特别详细,个人感觉,但是,没有这篇文章就没有我的这篇文章)https://blog.csdn.net/qq_42455095/article/details/84313754#commentBoxtp5进行数据库备份还原等一系列操作(这篇文章还是挺详细的,不过和第一篇比还是比较细腻的,页面没有第一篇好看)https://blo...

weixin_34646919的博客 480

thinkphp5数据库备份还原扩展

安装 composer require tp5er/tp5-databackup dev-master 引入类文件 use \tp5er\Backup; 基本配置信息,默认传入下面参数 $config=array( 'path' =&amp;amp;gt; './Data/',//数据库备份路径 'part' =&amp;amp;gt; 20971520,//数据库备份卷大小 'com...

小泥人 2248

Tinkphp5,kotlin标准库

fclose ($file); return array(‘code’ => 1, ‘msg’ => ‘还原数据库成功’); } catch (\Exception $e) { return array(‘code’ => 0, ‘msg’ => ‘还原数据库失败,Error:’.$e); } } } 二、创建一张数据库表,用于保存备份内容 – Table structure for database DROP TABLE IF EXISTS database; CREATE T

m0_66264699的博客 978

php 数据库备份

最佳数据备份还原- shell脚本方式 //备份整个数据库 mysqldump -uroot -hhost -ppassword dbname > backdb.sql //备份数据库中的某个表 mysqldump -uroot -hhost -ppassword dbname tbname1, tbname2 > backdb.sql //备份多个数据库 mysqldump -uroot -hhost -ppassword --databases dbname1, dbname2 &gt

qmister 583

ThinkPHP5网站入侵应急响应:WebShell检测、清除与安全加固实战

WebShell是Web安全领域常见的后门程序,其原理是通过文件上传、远程代码执行等漏洞,将恶意脚本植入服务器,使攻击者能够远程执行任意命令。这种技术的危害在于能完全控制服务器,窃取数据、植入后门或发起进一步攻击。在工程实践中,防范WebShell需要从漏洞修复、入侵检测和应急响应三个层面构建防御体系。本文以一次真实的ThinkPHP5网站入侵事件为例,详细拆解了从发现异常请求、定位WebShell文件,到全面清除后门、修复文件上传漏洞和远程代码执行漏洞的完整操作流程。通过结合日志分析、特征扫描和工具检测,

weixin_30535843的博客 346

在线下单系统think php,昱杰订单管理系统(ThinkPHP版) v19.0

昱杰订单管理系统(ThinkPHP版)是根据thinkphp框架来进行开发的php订单管理系统。昱杰订单管理系统介绍一、订单模块1、订单管理:后台可视化管理订单,追踪客户下单IP及来路,下单后第一时间通过邮件和短信通知您;2、订单回收站:在订单管理模块中删除的订单将进入此模块,可进行还原操作;3、订单统计:按天、按月、按年全方位为您解析订单数据,一键导出订单统计数据到excel;4、订单状态:可自...

weixin_39986435的博客 1006

ThinkPHP支付系统商户自助进件功能与代码加密实战

在Web应用开发中,数据安全与业务流程自动化是构建可靠商业系统的基石。其核心原理在于通过严谨的代码逻辑与加密技术,确保敏感信息在传输、存储与处理过程中的机密性与完整性。这对于提升系统抗攻击能力、保护商业数据具有至关重要的技术价值,尤其在支付、电商等涉及资金与用户隐私的应用场景中。本文将聚焦于支付系统的关键模块——商户自助进件功能,深入剖析其业务流程、数据库设计及前后端交互的安全实践。针对广泛使用的ThinkPHP 3.2.3框架,文章提供了完整的控制器与模型代码实现,并重点探讨了如何利用**ionCube*

weixin_34356555的博客 440

PHP7+MySql开发的视频点播程序,知识付费系统

系统基于 ThinkPhp5.0+Vue 框架的以视频管理、播放等功能为主的定制程序。发布连载视频,分类别管理,付费设置,支持会员充值及购买模式 采用国际主流框架 Codeigniter4 运行的视频程序,轻架构,高效易开发,快速搭建并轻松管理。......

WordPress主题大全 1137

【免费下载ThinkPHP6 完整资源包下载

ThinkPHP6 完整资源包下载下载地址】ThinkPHP6完整资源包下载 本仓库提供了一个完整的 ThinkPHP 6.0.5 资源包下载,包含了当前版本的所有插件。对于不喜欢使用 Composer 安装的同学来说,这是一个非常方便的选择。你可以直接下载并使用这个资源包,无需再进行繁琐的安装步骤 ...

gitblog_09732的博客 1443

Thinkphp下载

默认保存在C:\Users\Administrator\think路径。第五步:下载TP框架(选择对应版本下载)第三步:查看composer是否安装。第二步:下载并安装composer。第一步:打开Thinkphp官网。第四步:改TP框架下载位置。第六步:TP框架下载成功。

yhl20202020的博客 3731

thinkphp5备份还原数据库(MSSQL)

thinkphp备份还原数据库(MSSQL) 最近的项目,项目要求使用 MSSQL,鄙人之前使用的都是mysql。对MSSQL只是了解,所以要使用MSSQL顿时蒙了,便开始请求百度,stack overflow和各大博客,始终未找到案例,十分难受,然后上谷歌搜索找到了,找到一位博主十年前自己写的案例脚本。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdo...

weixin_40980379的博客 620
上一篇: 阿里云服务器 nginx配置http和https都能访问
下一篇: tp5 上传图片到阿里云OSS
xyl_hq
博客等级 码龄7年 14粉丝 36原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值