一个MySQL数据备份/恢复的简易方法

步芸家的

步芸家的

2016-01-29 14:53

一个MySQL数据备份/恢复的简易方法,一个MySQL数据备份/恢复的简易方法

方法一:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/mysql/)

<?php/* * 功能:数据备份/恢复文件简易方法 *   以日期为单位,一天一个备份文件,以当天最后备份为准 *   用提交表单的形式进行操作, *  其中$_POST["tbl_name"]为预备份表名称数组 *      $_POST["sqlfile"]为预恢复数据文件的名称 *  注意:该备份没有结构备份,只有数据备份 * *  备份文件格式: *  `表名称1`{{数据1}}`表名称2`{{数据2}}`表名称3`{{数据3}}... *  * 创建时间:2005-02-25 * E-mail: kingerq AT msn.com * 来源:http://blog.csdn.net/kingerq */include("../inc/globals.inc.php");//省略包函文件db_mysql.inc和MYSQL连接信息set_time_limit(0);$dbdir = "d:/site/dbbak/";//用绝对路径$txtname = array();if($_POST){ if(!is_writable($dbdir)) {  echo "对不起!指定的备份目录不可写!请修改权限";  exit; }  //op为一个隐形域,识别备份或者恢复 if($_POST["op"]){//备份数据  //生成每个表的临时备份文件  foreach($_POST["tbl_name"] as $tbl){   $txtname[] = $tbl.".txt";   $sql = "SELECT * FROM `$tbl` INTO OUTFILE '".$dbdir.end($txtname)."'";   $db-query($sql);  }   //将生成的临时备份文件合在一起  $outfile = date("Y-m-d").".sql";    if(file_exists($dbdir.$outfile)) @unlink($dbdir.$outfile);    $fpr = fopen($dbdir.$outfile, "a");  foreach($txtname as $txt){   if(file_exists($dbdir.$txt)){    //读取临时备份文件    $tdata = readfiles($dbdir.$txt);            //生成备份文件    $tbl = explode(".", $txt);    $str = "`".$tbl[0]."`{{".$tdata."}}";    if(fwrite($fpr, $str)){     echo $tbl[0]."...写入 $outfile 成功!<brn";    }else{     echo $tbl[0]."...写入 $outfile 失败!<brn";    }        @unlink($dbdir.$txt);   }  }  fclose($fpr); }else{//恢复数据  $tdata = readfiles($dbdir.$_POST["sqlfile"]);    preg_match_all("/`(.*)`{{(.*)}}/isU", $tdata, $data_ar);  foreach($data_ar[1] as $k = $tt){   if(empty($data_ar[2][$k])) continue;   $tfile = $dbdir.$tt.".txt";   $fp = fopen($tfile, "w");   if(fwrite($fp, $data_ar[2][$k])){    //清空表    $sql = "TRUNCATE TABLE `$tt`";    $db-query($sql);    //重新装入数据    $sql = "LOAD DATA LOW_PRIORITY INFILE '".$dbdir.$tt.".txt"."' INTO TABLE `$tt`";    if($db-query($sql)){     fclose($fp);     echo $tt."表数据恢复成功!<brn";     unlink($dbdir.$tt.".txt");    }else{     echo $tt."表数据恢复失败!<brn";    }   }     }  //echo $tdata;  //print_r($data_ar);  //exit; }}  /*   * 读取文件内容  * 参数 $file 为文件名及完整路径  * 返回文件内容  */ function readfiles($file){  $tdata = "";  $fp = fopen($file, "r");  if(filesize($file) <= 0) return;  while($data = fread($fp, filesize($file))){   $tdata .= $data;  }  fclose($fp);  return $tdata; }?
展开更多 50%)
分享

猜你喜欢

一个MySQL数据备份/恢复的简易方法

MySQL mysql数据库
一个MySQL数据备份/恢复的简易方法

一个简便的MySql数据库备份的方法

MySQL mysql数据库
一个简便的MySql数据库备份的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MySQL简易备份方法

MySQL mysql数据库
MySQL简易备份方法

MYSQL教程:使用备份恢复数据

编程语言 网络编程
MYSQL教程:使用备份恢复数据

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL数据库备份与恢复

编程语言 网络编程
MySQL数据库备份与恢复

Mysql入门系列:使用MYSQL备份数据恢复

编程语言 网络编程
Mysql入门系列:使用MYSQL备份数据恢复

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

mysql中的替换语句

mysql中的替换语句

Oracle中如何直接运行OS命令(上)

Oracle中如何直接运行OS命令(上)
下拉加载更多内容 ↓