php备份数据库类分享


Posted in PHP onApril 14, 2015

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');  
?>

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

PHP 相关文章推荐
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
Laravel如何同时连接多个数据库详解
Aug 13 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
PHP用反撇号执行外部命令
Apr 14 #PHP
PHP使用mysqldump命令导出数据库
Apr 14 #PHP
php遍历CSV类实例
Apr 14 #PHP
php获取twitter最新消息的方法
Apr 14 #PHP
php检测url是否存在的方法
Apr 14 #PHP
PHP中把对象转换为关联数组代码分享
Apr 09 #PHP
Laravel 5 框架入门(四)完结篇
Apr 09 #PHP
You might like
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
Python获取邮件地址的方法
2015/07/10 Python
Python中http请求方法库汇总
2016/01/06 Python
python编写Logistic逻辑回归
2020/12/30 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
医院实习接收函
2014/01/12 职场文书
代理人委托书
2014/09/16 职场文书
超市收银员岗位职责
2015/04/07 职场文书
医者仁心观后感
2015/06/17 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Python入门之基础语法详解
2021/05/11 Python
Java 在线考试云平台的实现
2021/11/23 Java/Android
Python+DeOldify实现老照片上色功能
2022/06/21 Python