PHP는 MySQL 데이터베이스 백업 클래스를 구현합니다.

墨辰丷
풀어 주다: 2023-03-31 15:48:01
원래의
4382명이 탐색했습니다.

이 문서의 예에서는 PHP에서 MySQL 데이터베이스 백업 클래스를 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다. php를 사용하여 mysql 데이터베이스를 백업하는 매우 간단한 클래스 파일입니다. 연결 주소, 사용자 이름 및 데이터베이스만 구성하면 됩니다.

php 백업 데이터베이스 클래스 공유

<?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;);  
?>
로그인 후 복사

요약 : 위 내용은 이 글의 전체 내용이 모든 분들의 공부에 도움이 되기를 바랍니다.

관련 권장 사항:

PHP에서 숫자를 한자로 변환하는 방법

PHP+Mysql+jQuery에서 비밀번호 검색 기능을 구현하는 방법

PHP를 사용하여 동적으로 HTML 코드를 생성하는 방법 배열

위 내용은 PHP는 MySQL 데이터베이스 백업 클래스를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!