1. mydb.php //DB類
2. backup.php //備份腳本
3. restore.php //還原腳本
mydb.php
<?
class db{
var $linkid;
var $sqlid;
var $record;
function db($host="",$username="",$password="",$database="")
{
if(!$this->linkid) @$this->linkid = mysql_connect($host, $username, $password) or die("連接服務器失敗.");
@mysql_select_db($database,$this->linkid) or die("無法打開數據庫");
return $this->linkid;}
function query($sql)
{if($this->sqlid=mysql_query($sql,$this->linkid)) return $this->sqlid;
else {
$this->err_report($sql,mysql_error);
return false;}
}
function nr($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
return mysql_num_rows($sql_id);}
function nf($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
return mysql_num_fields($sql_id);}
function nextrecord($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
if($this->record=mysql_fetch_array($sql_id)) return $this->record;
else return false;
}
function f($name)
{
if($this->record[$name]) return $this->record[$name];
else return false;
}
function close() {mysql_close($this->linkid);}
function lock($tblname,$op="WRITE")
{if(mysql_query("lock tables ".$tblname." ".$op)) return true; else return false;}
function unlock()
{if(mysql_query("unlock tables")) return true; else return false;}
function ar() {
return @mysql_affected_rows($this->linkid);
}
function i_id() {
return mysql_insert_id();
}
function err_report($sql,$err)
{
echo "Mysql查詢錯誤<br>";
echo "查詢語句:".$sql."<br>";
echo "錯誤信息:".$err;
}
/****************************************類結束***************************/
}?>
backup.php
<?
global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb;
$mysqlhost="localhost"; //host name
$mysqluser="root"; //login name
$mysqlpwd=""; //password
$mysqldb=""; //name of database
include("mydb.php");
$d=new db($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
/*--------------界面--------------*/if(!$_POST['act']){/*----------------------*/
$msgs[]="服務器備份目錄為backup";
$msgs[]="對於較大的數據表,強烈建議使用分卷備份";
$msgs[]="只有選擇備份到服務器,才能使用分卷備份功能";
show_msg($msgs);
?>
<form name="form1" method="post" action="backup.php">
<table width="99%" border="1" cellpadding='0' cellspacing='1'>
<tr align="center" class='header'><td colspan="2">數據備份</td></tr>
<tr><td colspan="2">備份方式</td></tr>
<tr><td><input type="radio" name="bfzl" value="quanbubiao"> 備份全部數據</td><td>備份全部數據表中的數據到一個備份文件</td></tr>
<tr><td><input type="radio" name="bfzl" value="danbiao">備份單張表數據
<select name="tablename"><option value="">請選擇</option>
<?
$d->query("show table status from $mysqldb");
while($d->nextrecord()){
echo "<option value='".$d->f('Name')."'>".$d->f('Name')."</option>";}
?>
</select></td><td>備份選中數據表中的數據到單獨的備份文件</td></tr>
<tr><td colspan="2">使用分卷備份</td></tr>
<tr><td colspan="2"><input type="checkbox" name="fenjuan" value="yes">
分卷備份 <input name="filesize" type="text" size="10">K</td></tr>
<tr><td colspan="2">選擇目標位置</td></tr>
<tr><td colspan="2"><input type="radio" name="weizhi" value="server" checked>備份到服務器</td></tr><tr class="cells"><td colspan='2'> <input type="radio" name="weizhi" value="localpc">
備份到本地</td></tr>
<tr><td colspan="2" align='center'><input type="submit" name="act" value="備份"></td></tr>
</table></form>
<?/*-------------界面結束-------------*/}/*---------------------------------*/