本文实例讲述了php实现MySQL数据库备份类。分享给大家供大家参考。具体分析如下:这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的配置好连接地址用户名与数据库即可
 

php备份数据库类分享

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
  /**
  
  *  @name php备份数据库
  *  @param string  $DbHost    连接主机
  *  @param string  $DbUser    用户名
  *  @param string  $DbPwd    连接密码
  *  @param string  $DbName    要备份的数据库
  *  @param string  $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分
  *  @return Null
  *  @example backupMySqlData('localhost', 'root', '123456', 'YourDbName');
  *
  */
  function backupMySqlData($DbHost, $DbUser, $DbPwd, $DbName, $saveFileName = '')
  {
    header("Content-type:text/html;charset=utf-8");
    error_reporting(0);
    set_time_limit(0);
 
    echo '数据备份中,请稍候......<br />';
 
    $link = mysql_connect($DbHost, $DbUser, $DbPwd) or die('数据库连接失败: ' . mysql_error());
    mysql_select_db($DbName) or die('数据库连接失败: ' . mysql_error());
    mysql_query('set names utf8');
     
    // 声明变量
    $isDropInfo   = '';
    $insertSQL   = '';
    $row      = array();
    $tables     = array();
    $tableStructure = array();
    $fileName    = ($saveFileName ? $saveFileName : 'MySQL_data_bakeup_') . date('YmdHis') . '.sql';
 
    // 枚举该数据库所有的表
    $res = mysql_query("SHOW TABLES FROM $DbName");
    while ($row = mysql_fetch_row($res)) {
 
      $tables[] = $row[0];
 
    }
    mysql_free_result($res);
 
    // 枚举所有表的创建语句
    foreach ($tables as $val) {
 
      $res = mysql_query("show create table $val", $link);
      $row = mysql_fetch_row($res);
 
      $isDropInfo   = "DROP TABLE IF EXISTS `" . $val . "`;\r\n";
      $tableStructure = $isDropInfo . $row[1] . ";\r\n";
 
      file_put_contents($fileName, $tableStructure, FILE_APPEND);
      mysql_free_result($res);
    }
 
    // 枚举所有表的INSERT语句
    foreach ($tables as $val) {
 
      $res = mysql_query("select * from $val");
 
      // 没有数据的表不执行insert
      while ($row = mysql_fetch_row($res)) {
 
        $sqlStr = "INSERT INTO `".$val."` VALUES (";
 
        foreach($row as $v){
 
          $sqlStr .= "'$v',";
 
        }
        //去掉最后一个逗号
        $sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1);
        $sqlStr .= ");\r\n";
 
        file_put_contents($fileName, $sqlStr, FILE_APPEND);
      }
      mysql_free_result($res);
    }
 
    echo '数据备份成功!';
  }
   // 调用此方法
  backupMySqlData('localhost', 'root', '123456', 'YouDbName'); 
?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

php备份数据库类分享的更多相关文章

  1. mysql load data infile的使用 和 SELECT into outfile备份数据库数据

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE t ...

  2. MSSQL自动备份数据库

    最近项目中,需要用到MSSQL自动定时备份功能,本来想利用C#自己写一个的,但是听说在MSSQL2008中已经集成了功能强大的自动备份功能,于是便提刀上阵,狠狠地琢磨了一番: 首先,打开MSSQL20 ...

  3. SQL Server 远程备份数据库

    在一些涉及到数据库的项目中,经常会有定时备份数据库的需要.定时备份到本机的话,还是挺容易的,计划任务就可以完成,但如果是整机挂了,那备份到本机是没意义的,那么就需要来考虑备份到局域网中,其它电脑里. ...

  4. mvc项目中实现备份数据库(sqlserver2005)

    功能要求:mvc项目,实现数据库备份(bak文件) 实现步骤:<a id="backupDB" href="javascript:" >数据库备份& ...

  5. CodeIgniter框架——数据库类(配置+快速入门)

    CodeIgniter用户指南——数据库类 数据库配置 入门:用法举例 连接数据库 查询 生成查询结果 查询辅助函数 Active Record 类 事务 表格元数据 字段元数据 自定义函数调用 查询 ...

  6. Thinkphp3.2 备份数据库和还原数据的方法

    其实Thinkphp框架并没有自带备份数据库的功能,但是细心的朋友可能会发现Thinkphp的一套内容管理系统oneThink是有备份数据库和还原数据的功能的. 所以今天我就来聊一聊,oneThink ...

  7. 在ASP.NET中备份数据库以及还原(不成熟)

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  8. MySQL数据库入门备份数据库

    MySQL数据库入门——备份数据库   一提到数据,大家神经都会很紧张,数据的类型有很多种,但是总归一点,数据很重要,非常重要,因此,日常的数据备份工作就成了运维工作的重点中的重点的重点....... ...

  9. SQL SERVER备份数据库文件(使用SSMS)

    微软的SQL SERVER是市面占有率比较大的数据库,在平时的使用与维护中,备份数据是一件十分重要的! 备份操作,用微软自带的ssms(SQL Server Management Studio)工具即 ...

随机推荐

  1. centos 命令

    1.查看占用端口的进程 netstat -lnp|grep 3000(3000为端口号) Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statis ...

  2. Android studio Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to

    http://blog.csdn.net/FlyRabbit_1/article/details/74536317 Error:org.gradle.api.internal.tasks.Defaul ...

  3. Ruby学习之对象模型

    这两周工作内容较多,平时自己也有点不在状态,学的东西有点少了,趁着现在还有点状态,赶紧复习一下之前学习的Ruby吧. Ruby是我真正开始接触动态语言魅力的第一个语言,之前虽然也用过且一直用perl. ...

  4. [UWP]如何使用Fluent Design System (上)

    1. 前言 微软在Build 2017中公布了新的设计语言Fluent Design System(以下简称FDS),不过官网只是堆砌了各种华丽的词语以及一堆动画.至于在UWP中要做成怎么样,怎么做, ...

  5. vue-devtools(vue 2.0)手动安装与使用 ? 如何处理Vue.js is detected on this page ?

    vue-devtools手动安装与使用   一.在github上下载压缩包,github下载地址:https://github.com/vuejs/vue-devtools 二.解压到本地的某盘 三. ...

  6. [转载]MySQL5.6 PERFORMANCE_SCHEMA 说明

    背景: MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数.并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储 ...

  7. 浅谈我的MongoDB学习(二)

    上一篇简单讲了mongodb的安装,mongo的windows服务安装,这样服务器重启windows服务会自动重启mongodb的server,然后我们就可以用客户端去管理数据了.mongodb客户端 ...

  8. django笔记整理

    Django复习: MTV模型: manager启动服务→urls找到路径→(找到views视图函数或者做路由分发)→视图函数处理相关逻辑,返回一个模板或者是字符串: ---------------- ...

  9. github免密登陆

    import requests import re # 一:先获取登陆页面,拿到authenticity_token: # 1 请求的url:https://github.com/login # 2 ...

  10. python查询完结篇

    0x00 网上找一个查询网站,然后自己写的一个脚本 0x01 代码送上: import requests import time from bs4 import BeautifulSoup strat ...