php备份数据库类分享

 更新时间:2015年04月14日 11:14:46   投稿:hebedich  
本文实例讲述了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('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');  
?>

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

相关文章

  • iis下php mail函数的sendmail配置方法(官方推荐)

    iis下php mail函数的sendmail配置方法(官方推荐)

    很多玩discuz的彭友在使用在线发邮件的功能,但是测试了"通过 PHP 函数的 sendmail 发送(推荐此方式)"怎么都没用,因为本人现在用的是iis+php环境,所以就出这么一个教程,教大家在自己服务器上配置sendmail
    2012-04-04
  • WampServer搭建php环境时遇到的问题汇总

    WampServer搭建php环境时遇到的问题汇总

    这篇文章主要介绍了WampServer搭建php环境时遇到的常见问题的解决办法汇总,以上所述就是本文的全部内容了。
    2015-07-07
  • PHP程序中的文件锁、互斥锁、读写锁使用技巧解析

    PHP程序中的文件锁、互斥锁、读写锁使用技巧解析

    这篇文章主要介绍了PHP程序中的文件锁、互斥锁、读写锁使用技巧解析,其中重点讲解了sync模块和pthreads模块中的使用实例,需要的朋友可以参考下
    2016-03-03
  • PHP进阶学习之命名空间基本用法分析

    PHP进阶学习之命名空间基本用法分析

    这篇文章主要介绍了PHP进阶学习之命名空间基本用法,简单分析了php命名空间的基本概念、功能并结合实例形式描述了命名空间的用法与相关操作注意事项,需要的朋友可以参考下
    2019-06-06
  • PHP时间戳和日期相互转换操作实例小结

    PHP时间戳和日期相互转换操作实例小结

    这篇文章主要介绍了PHP时间戳和日期相互转换操作,结合实例形式总结分析了php常见的各种日期与时间戳转换操作使用技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • php实现图片等比例缩放代码

    php实现图片等比例缩放代码

    本文给大家分享的是使用php实现的图片等比例缩放的代码,小伙伴们可以将其集成到图片上传中去,有需要的童鞋可以参考下。
    2015-07-07
  • 深入php多态的实现详解

    深入php多态的实现详解

    本篇文章是对php多态的实现进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 基于PHP做个图片防盗链

    基于PHP做个图片防盗链

    本文主要介绍了Referer原理与图片防盗链实现方法,结合实例形式分析了Referer头信息原理与图片防盗链判定、实现方法,并附带一个Http请求封装类,需要的朋友可以参考下
    2022-12-12
  • php限制ip地址范围的方法

    php限制ip地址范围的方法

    这篇文章主要介绍了php限制ip地址范围的方法,涉及php操作IP地址的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • PHP实现的自定义图像居中裁剪函数示例【测试可用】

    PHP实现的自定义图像居中裁剪函数示例【测试可用】

    这篇文章主要介绍了PHP实现的自定义图像居中裁剪函数,结合实例形式分析了php针对图片的获取、计算、裁剪、保存等相关操作技巧,需要的朋友可以参考下
    2017-08-08

最新评论