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中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
php文件上传的两种实现方法
Apr 04 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
Laravel 的数据库迁移的方法
Jul 31 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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
重置版游戏视频
2020/04/09 魔兽争霸
php解决约瑟夫环示例
2014/04/09 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Django实现自定义404,500页面教程
2017/03/26 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
原料仓仓管员岗位职责
2014/07/08 职场文书
最美家庭活动方案
2014/08/31 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
简单租房协议书
2014/10/21 职场文书
观后感的写法
2015/06/19 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android
小程序实现侧滑删除功能
2022/06/25 Javascript