Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die MySQL-Datenbanksicherungsklasse

PHP implementiert die MySQL-Datenbanksicherungsklasse

墨辰丷
墨辰丷Original
2018-06-11 16:34:144445Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie die MySQL-Datenbanksicherungsklasse in PHP implementiert wird. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt: Dies ist eine sehr einfache Klassendatei, die PHP zum Sichern der MySQL-Datenbank verwendet. Wir müssen lediglich die Verbindungsadresse, den Benutzernamen und die Datenbank konfigurieren

PHP-Sicherungsdatenbank-Klassenfreigabe

<?php
  /**
  *  
  *  @name php备份数据库 
  *  @param string  $DbHost    连接主机
  *  @param string  $DbUser    用户名
  *  @param string  $DbPwd    连接密码
  *  @param string  $DbName    要备份的数据库
  *  @param string  $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分
  *  @return Null
  *  @example backupMySqlData(&#39;localhost&#39;, &#39;root&#39;, &#39;123456&#39;, &#39;YourDbName&#39;);
  *
  */
  function backupMySqlData($DbHost, $DbUser, $DbPwd, $DbName, $saveFileName = &#39;&#39;)
  {
    header("Content-type:text/html;charset=utf-8");
    error_reporting(0);
    set_time_limit(0);

    echo &#39;数据备份中,请稍候......<br />&#39;;

    $link = mysql_connect($DbHost, $DbUser, $DbPwd) or die(&#39;数据库连接失败: &#39; . mysql_error());
    mysql_select_db($DbName) or die(&#39;数据库连接失败: &#39; . mysql_error());
    mysql_query(&#39;set names utf8&#39;);
    
    // 声明变量
    $isDropInfo   = &#39;&#39;;
    $insertSQL   = &#39;&#39;;
    $row      = array();
    $tables     = array();
    $tableStructure = array();
    $fileName    = ($saveFileName ? $saveFileName : &#39;MySQL_data_bakeup_&#39;) . date(&#39;YmdHis&#39;) . &#39;.sql&#39;;

    // 枚举该数据库所有的表
    $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 .= "&#39;$v&#39;,";

        }
        //去掉最后一个逗号
        $sqlStr = substr($sqlStr, 0, strlen($sqlStr) - 1);
        $sqlStr .= ");\r\n";

        file_put_contents($fileName, $sqlStr, FILE_APPEND);
      }
      mysql_free_result($res);
    }

    echo &#39;数据备份成功!&#39;;
  }
   // 调用此方法 
  backupMySqlData(&#39;localhost&#39;, &#39;root&#39;, &#39;123456&#39;, &#39;YouDbName&#39;);  
?>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

So konvertieren Sie Zahlen in chinesische Schriftzeichen in PHP

PHP+Mysql+jQuery um die Funktion zum Abrufen von Passwörtern zu implementieren

PHP-Methode zum dynamischen Erstellen von HTML-Code basierend auf einem Array

Das obige ist der detaillierte Inhalt vonPHP implementiert die MySQL-Datenbanksicherungsklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn