backup.php,backup.php

error_reporting(E_ALL & ~ E_NOTICE);

global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb;

$mysqlhost="localhost"; //host name

$mysqluser="root"; //login name

$mysqlpwd=""; //password

$mysqldb="EQMIS"; //name of database

include("mydb.php");

$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);

/*--------------界面--------------*/if(!$_POST['act']){/*----------------------*/

$msgs[]="服务器备份目录为backup";

$msgs[]="对于较大的数据表,强烈建议使用分卷备份";

$msgs[]="只有选择备份到服务器,才能使用分卷备份功能";

show_msg($msgs);

?>

数据备份
备份方式
备份全部数据备份全部数据表中的数据到一个备份文件
备份单张表数据

请选择

$d->query("show table status from $mysqldb");

while($d->nextrecord()){

echo "".$d->f('Name')."";}

?>

备份选中数据表中的数据到单独的备份文件
使用分卷备份

分卷备份 K

选择目标位置
备份到服务器

备份到本地

}

else{

if($_POST['weizhi']=="localpc"&&$_POST['fenjuan']=='yes')

{$msgs[]="只有选择备份到服务器,才能使用分卷备份功能";

show_msg($msgs); pageend();}

if($_POST['fenjuan']=="yes"&&!$_POST['filesize'])

{$msgs[]="您选择了分卷备份功能,但未填写分卷文件大小";

show_msg($msgs); pageend();}

if($_POST['weizhi']=="server"&&!writeable("./backup"))

{$msgs[]="备份文件存放目录'./backup'不可写,请修改目录属性";

show_msg($msgs); pageend();}

/*----------备份全部表-------------*/if($_POST['bfzl']=="quanbubiao"){/*----*/

/*----不分卷*/if(!$_POST['fenjuan']){/*--------------------------------*/

if(!$tables=$d->query("show table status from $mysqldb"))

{$msgs[]="读数据库结构错误"; show_msg($msgs); pageend();}

$sql="";

while($d->nextrecord($tables))

{

$table=$d->f("Name");

$sql.=make_header($table);

$d->query("select * from $table");

$num_fields=$d->nf();

while($d->nextrecord())

{$sql.=make_record($table,$num_fields);}

}

$filename=date("Ymd",time())."_all.sql";

if($_POST['weizhi']=="localpc") down_file($sql,$filename);

elseif($_POST['weizhi']=="server")

{if(write_file($sql,$filename))

$msgs[]="全部数据表数据备份完成,生成备份文件'./backup/$filename'";

else $msgs[]="备份全部数据表失败";

show_msg($msgs);

pageend();

}

/*-----------------不要卷结束*/}/*-----------------------*/

/*-----------------分卷*/else{/*-------------------------*/

if(!$_POST['filesize'])

{$msgs[]="请填写备份文件分卷大小"; show_msg($msgs);pageend();}

if(!$tables=$d->query("show table status from $mysqldb"))

{$msgs[]="读数据库结构错误"; show_msg($msgs); pageend();}

$sql=""; $p=1;

$filename=date("Ymd",time())."_all";

while($d->nextrecord($tables))

{

$table=$d->f("Name");

$sql.=make_header($table);

$d->query("select * from $table");

$num_fields=$d->nf();

while($d->nextrecord())

{$sql.=make_record($table,$num_fields);

if(strlen($sql)>=$_POST['filesize']*1000){

$filename.=("_v".$p.".sql");

if(write_file($sql,$filename))

$msgs[]="全部数据表-卷-".$p."-数据备份完成,生成备份文件'./backup/$filename'";

else $msgs[]="备份表-".$_POST['tablename']."-失败";

$p++;

$filename=date("Ymd",time())."_all";

$sql="";}

}

}

if($sql!=""){$filename.=("_v".$p.".sql");

if(write_file($sql,$filename))

$msgs[]="全部数据表-卷-".$p."-数据备份完成,生成备份文件'./backup/$filename'";}

show_msg($msgs);

/*---------------------分卷结束*/}/*--------------------------------------*/

/*--------备份全部表结束*/}/*---------------------------------------------*/

/*--------备份单表------*/elseif($_POST['bfzl']=="danbiao"){/*------------*/

if(!$_POST['tablename'])

{$msgs[]="请选择要备份的数据表"; show_msg($msgs); pageend();}

/*--------不分卷*/if(!$_POST['fenjuan']){/*-------------------------------*/

$sql=make_header($_POST['tablename']);

$d->query("select * from ".$_POST['tablename']);

$num_fields=$d->nf();

while($d->nextrecord())

{$sql.=make_record($_POST['tablename'],$num_fields);}

$filename=date("Ymd",time())."_".$_POST['tablename'].".sql";

if($_POST['weizhi']=="localpc") down_file($sql,$filename);

elseif($_POST['weizhi']=="server")

{if(write_file($sql,$filename))

$msgs[]="表-".$_POST['tablename']."-数据备份完成,生成备份文件'./backup/$filename'";

else $msgs[]="备份表-".$_POST['tablename']."-失败";

show_msg($msgs);

pageend();

}

/*----------------不要卷结束*/}/*------------------------------------*/

/*----------------分卷*/else{/*--------------------------------------*/

if(!$_POST['filesize'])

{$msgs[]="请填写备份文件分卷大小"; show_msg($msgs);pageend();}

$sql=make_header($_POST['tablename']); $p=1;

$filename=date("Ymd",time())."_".$_POST['tablename'];

$d->query("select * from ".$_POST['tablename']);

$num_fields=$d->nf();

while ($d->nextrecord())

{

$sql.=make_record($_POST['tablename'],$num_fields);

if(strlen($sql)>=$_POST['filesize']*1000){

$filename.=("_v".$p.".sql");

if(write_file($sql,$filename))

$msgs[]="表-".$_POST['tablename']."-卷-".$p."-数据备份完成,生成备份文件'./backup/$filename'";

else $msgs[]="备份表-".$_POST['tablename']."-失败";

$p++;

$filename=date("Ymd",time())."_".$_POST['tablename'];

$sql="";}

}

if($sql!=""){$filename.=("_v".$p.".sql");

if(write_file($sql,$filename))

$msgs[]="表-".$_POST['tablename']."-卷-".$p."-数据备份完成,生成备份文件'./backup/$filename'";}

show_msg($msgs);

/*----------分卷结束*/}/*--------------------------------------------------*/

/*----------备份单表结束*/}/*----------------------------------------------*/

/*---*/}/*-------------主程序结束------------------------------------------*/

function write_file($sql,$filename)

{

$re=true;

if(!@$fp=fopen("./backup/".$filename,"w+")) {$re=false; echo "failed to open target file";}

if(!@fwrite($fp,$sql)) {$re=false; echo "failed to write file";}

if(!@fclose($fp)) {$re=false; echo "failed to close target file";}

return $re;

}

function down_file($sql,$filename)

{

ob_end_clean();

header("Content-Encoding: none");

header("Content-Type: ".(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));

header("Content-Disposition: ".(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'inline; ' : 'attachment; ')."filename=".$filename);

header("Content-Length: ".strlen($sql));

header("Pragma: no-cache");

header("Expires: 0");

echo $sql;

$e=ob_get_contents();

ob_end_clean();

}

function writeable($dir)

{

if(!is_dir($dir)) {

@mkdir($dir, 0777);

}

if(is_dir($dir))

{

if($fp = @fopen("$dir/test.test", 'w'))

{

@fclose($fp);

@unlink("$dir/test.test");

$writeable = 1;

}

else {

$writeable = 0;

}

}

return $writeable;

}

function make_header($table)

{global $d;

$sql="DROP TABLE IF EXISTS ".$table."\n";

$d->query("show create table ".$table);

$d->nextrecord();

$tmp=preg_replace("/\n/","",$d->f("Create Table"));

$sql.=$tmp."\n";

return $sql;

}

function make_record($table,$num_fields)

{global $d;

$comma="";

$sql = "";

$sql .= "INSERT INTO ".$table." VALUES(";

for($i = 0; $i < $num_fields; $i++)

{$sql .= ($comma."'".mysql_real_escape_string($d->record[$i])."'"); $comma = ",";}

$sql .= ")\n";

return $sql;

}

function show_msg($msgs)

{

$title="提示:";

echo "

echo "

".$title."";

echo "

  • ";

while (list($k,$v)=each($msgs))

{

echo "

".$v."";

}

echo "

";

}

function pageend()

{

exit();

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值