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 相关文章推荐
用PHP生成静态HTML速度快类库
Mar 18 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
php 魔术方法使用说明
Oct 20 PHP
php 代码优化之经典示例
Mar 24 PHP
php之Smarty模板使用方法示例详解
Jul 08 PHP
php从文件夹随机读取文件的方法
Jun 01 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
Nov 30 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
浅谈如何提高PHP代码的质量
May 28 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
用文本文件制作留言板提示(下)
2006/10/09 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python基础教程之类class定义使用方法
2014/02/20 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
《巨人的花园》教学反思
2014/02/12 职场文书
四风问题查摆材料
2014/08/25 职场文书
承诺书模板
2014/08/30 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Python基础之元组与文件知识总结
2021/05/19 Python