php分卷备份还原mysql数据库.docx
《php分卷备份还原mysql数据库.docx》由会员分享,可在线阅读,更多相关《php分卷备份还原mysql数据库.docx(17页珍藏版)》请在冰豆网上搜索。
php分卷备份还原mysql数据库
Php备份还原mysql数据库
Mydb.php
classdb{
var$linkid;
var$sqlid;
var$record;
functiondb($host="",$username="",$password="",$database="")
{
if(!
$this->linkid)@$this->linkid=mysql_connect($host,$username,$password)ordie("连接服务器失败.");
@mysql_select_db($database,$this->linkid)ordie("无法打开数据库");
return$this->linkid;}
functionquery($sql)
{if($this->sqlid=mysql_query($sql,$this->linkid))return$this->sqlid;
else{
$this->err_report($sql,mysql_error);
returnfalse;}
}
functionnr($sql_id="")
{if(!
$sql_id)$sql_id=$this->sqlid;
returnmysql_num_rows($sql_id);}
functionnf($sql_id="")
{if(!
$sql_id)$sql_id=$this->sqlid;
returnmysql_num_fields($sql_id);}
functionnextrecord($sql_id="")
{if(!
$sql_id)$sql_id=$this->sqlid;
if($this->record=mysql_fetch_array($sql_id))return$this->record;
elsereturnfalse;
}
functionf($name)
{
if($this->record[$name])return$this->record[$name];
elsereturnfalse;
}
functionclose(){mysql_close($this->linkid);}
functionlock($tblname,$op="WRITE")
{if(mysql_query("locktables".$tblname."".$op))returntrue;elsereturnfalse;}
functionunlock()
{if(mysql_query("unlocktables"))returntrue;elsereturnfalse;}
functionar(){
return@mysql_affected_rows($this->linkid);
}
functioni_id(){
returnmysql_insert_id();
}
functionerr_report($sql,$err)
{
echo"Mysql查询错误
";
echo"查询语句:
".$sql."
";
echo"错误信息:
".$err;
}
/****************************************类结束***************************/
}?
>
Bakeup.php
session_start();
global$mysqlhost,$mysqluser,$mysqlpwd,$mysqldb;
$mysqlhost="localhost";//hostname
$mysqluser="root";//loginname
$mysqlpwd="root";//password
$mysqldb="fuyan";//nameofdatabase
include("../inc/db_class.php");
$mysqlhost=$db_hostname;//hostname
$mysqluser=$db_username;//loginname
$mysqlpwd=$db_password;//password
$mysqldb=$db_database;//nameofdatabase
include("islogin.php");
include("mydb.php");
$d=newdb($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
//$d=newdb($db_hostname,$db_username,$db_password,$db_database);
/*--------------界面--------------*/if(!
$_POST['act']){/*----------------------*/
$msgs[]="服务器备份目录为backup";
$msgs[]="对于较大的数据表,强烈建议使用分卷备份";
$msgs[]="只有选择备份到服务器,才能使用分卷备份功能";
show_msg($msgs);
?
>
collapse">
数据备份
备份方式
备份全部数据 | 备份全部数据表中的数据到一个备份文件 |
备份单张表数据 请选择 $d->query("showtablestatusfrom$mysqldb"); while($d->nextrecord()){ echo"f('Name')."'>".$d->f('Name')."";} ? > | 备份选中数据表中的数据到单独的备份文件 |
使用分卷备份
分卷备份K
|
选择目标位置
备份到服务器
备份到本地
|
php
/*-------------界面结束-------------*/}
/*---------------------------------*/
/*----*/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("showtablestatusfrom$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();
}
/*-----------------不要卷结束*/}/*----------------