PHP 数据库备份与还原

大致步骤如下:

  • 从数据库中拿到要备份的数据表

    //拿数据表
    $sql = 'show tables';
    $tables_in_db = Db::query($sql);//你需要一个模型 (没有?下面附一个   这里是Tp5的模型)
    dump($tables_in_db);//打印
    

    下面是打印结果

    打印结果

    //遍历这个数组 调整一下结构  最后得到一个包含表名称的索引数组  
    $tables = array();
    foreach ( $tables_in_db as $k =>$v )
    {
         
    	$tables[$k] = $v['Tables_in_'.$dbname];//$dbname 是xxx  则键名是  Tables_in_xxx
    }
    
  • 拿到表结构

    $sql = "show create table `tableName`";//tableName 要查看的表名
    $create_table = Db::query($sql);
    dump($create_table );
    

    打印结果如下
    在这里插入图片描述
    很关键, “Create Table” 字段里的值, 就是你的表结构!!

  • 拿对应表的数据 (这个没什么可说的)

接下来是重点了
将表结构和对应数据记录保存到 一个名为 .sql 的文件里  
还原的话就是从这个文件中拿sql语句 执行

下面是自己写的一个 一键备份, 和一键还原(很弱!=.= ,没有分包什么的)
.sql 里的文件格式是模仿 Navicat for MySQL 导出的sql 文件 来写的
顺便附一个数据库操作类
https://blog.csdn.net/csdn_zhongwu/article/details/84257921

<?php
/**
 * 数据库备份
 */
class Backup
{
   
	private $tables = array();//要备份的数据表
	private $path;//文件保存路径
	private $dbname;//database name;
	private $model;//数据库模型对象

	function __construct()
	{
   
		$this->model = new Db();//你需要一个模型  请自行解决
		$this->path = ROOT.'/sql/';//常量ROOT 定义的项目根目录 请自行解决
		$this->dbname = DB_DBNAME;// database 名称 请自行解决
		$this->check_path();
		$this->get_tables();
	}

	//备份方法
	public function backupAll ()
	{
   
		
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值