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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
pdo中使用参数化查询sql
Aug 11 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
php过滤html标记属性类用法实例
Sep 23 PHP
php短网址和数字之间相互转换的方法
Mar 13 PHP
php保存信息到当前Session的方法
Mar 16 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 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
MySQL相关说明
2007/01/15 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
php中的静态变量的基本用法
2014/03/20 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
python中from module import * 的一个坑
2014/07/20 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
了解一下python内建模块collections
2020/09/07 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
关于雷锋的演讲稿
2014/05/10 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
中秋节慰问信
2015/02/15 职场文书
教师岗位说明书
2015/09/30 职场文书
《窃读记》教学反思
2016/02/18 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书