zoukankan      html  css  js  c++  java
  • php备份数据库类分享

    本文实例讲述了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 . "`; ";
          $tableStructure = $isDropInfo . $row[1] . "; ";
     
          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 .= "); ";
     
            file_put_contents($fileName, $sqlStr, FILE_APPEND);
          }
          mysql_free_result($res);
        }
     
        echo '数据备份成功!';
      }
       // 调用此方法
      backupMySqlData('localhost', 'root', '123456', 'YouDbName'); 
    ?>

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

  • 相关阅读:
    leetcode 279. Perfect Squares
    leetcode 546. Remove Boxes
    leetcode 312. Burst Balloons
    leetcode 160. Intersection of Two Linked Lists
    leetcode 55. Jump Game
    剑指offer 滑动窗口的最大值
    剑指offer 剪绳子
    剑指offer 字符流中第一个不重复的字符
    leetcode 673. Number of Longest Increasing Subsequence
    leetcode 75. Sort Colors (荷兰三色旗问题)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/8032514.html
Copyright © 2011-2022 走看看