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中文字符截取防乱码
Mar 28 PHP
php smarty的预保留变量总结
Dec 04 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
python实现人人网登录示例分享
2014/01/19 Python
在Python中使用__slots__方法的详细教程
2015/04/28 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
Python reques接口测试框架实现代码
2020/07/28 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
广州地球村科技数据库题目
2016/04/25 面试题
应届生新闻编辑求职信
2013/11/19 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
高级编程求职信模板
2014/02/16 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
邀请函格式范文
2015/02/02 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
2015年教师国培感言
2015/08/01 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
Python3 类型标注支持操作
2021/06/02 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python