?> <!doctype HTML PUBLIC "-//W3C//DTD XHTML 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/ Xhtml1-transitional.dtd "> <meta http-equiv= "Content-type" content= "text/html; Charset=utf-8 "/> <link type= "text/css Tutorial" rel= "stylesheet" href= "Common/control.css" > <script type= "text/web Effects" language= "JavaScript" src= "Common/admin.otable.js" ></script> <script type= "Text/javascript" language= "JavaScript" src= "Common/include.func.js" ></script> <title> Data Management </title> <style type= "Text/css" > span {padding-left:8px;} </style>
<body class= "Contentbody" > <div class= "Maindiv" > <span class= "Ctitle" >esweb system data Management </span> <ul class= "CMenu" > <li><a href= "sql_backup.php" > Data backup </a></li> <li><a href= "sql_restore.php" > Data restore </a></li> <li><a href= "sql_optimize.php" > Data optimization </a> </ul> <div class= "Concontent" > <?php /*--------------Interface--------------*/if (!$_post[' act ') {/*----------------------* * $MSGS []= "Server backup directory is $backup"; $MSGS []=] for large data tables, it is highly recommended to use a split-volume backup. $MSGS []=] only choose to back up to the server to use the split-volume backup function "; Show_msg ($MSGS); ?> <div class= "thead" ><span class= "left" > If Backup is required , restore or optimize <font color= "Red" > A large number of data </font>, the recommended use of "<a href=" http://www.phome.net/ebak2010/"target=" _blank "> Empire Backup King 2010</a>" </span> <span class= "right" ></span></div> <form name= "MyForm" method= "post" action= "sql_backup.php" > <table cellpadding= "" cellspacing= "0" border= "0" width= "100%" class= "CTable" id= "otable" align= "Center" > <tr> <th colspan= "2" >esweb system data Backup </th> </tr> <tr> <TD align= "right" width= ">" Select Backup Mode </td> <td><input type= "Radio" name= "Bfzl" value= "Quanbubiao" checked= "checked"/> Backup all data <input type= "Radio" name= "Bfzl" value= "Danbiao"/> Backup single sheet data <select name= "tablename" ><option value= "" > Please select </option> <?php $d->query ("Show Table status from $mysqldb"); while ($d->nextrecord ()) { echo "<option value= '". $d->f (' name '). "' > ". $d->f (' name ')." </option> ";} ?> </select></td> </tr> <tr> <TD align= "Right" > select target Location </td> <td><input type= "Radio" name= "Weizhi" value= "Server" checked= "checked"/> Backup to Server <input type= "Radio" name= "Weizhi" value= "LOCALPC"/> Backup to local </td> </tr> <tr> <TD align= "Right" > Use a split-volume backup </td> <td><input type= "checkbox" Name= "Fenjuan" value= "yes" checked= "checked"/> Split-volume backup <input name= "filesize" type= "text" value= "1260" size= "" class= "Text2"/> k <span> (only select Backup to Server, To use the split-volume backup feature) </span></td> </tr> <tr> <TD align= "Right" > procedure Description </td> <td>1. For large data tables, it is highly recommended that you use a volume backup. <br>2. You can use the split-volume backup feature only if you choose to back up to the server. </td> </tr> <tr> <TD align= "center" colspan= "2" ><input type= "submit" id= "Act" name= "act" value= "Backup" class= "button"/> < Input type= "reset" value= "reset" class= "button"/></td> </tr> </table> </form> <?php/*-------------interface End-------------*/}/*---------------------------------* * /*----*/else{/*--------------Main program-----------------------------------------* * if ($_post[' Weizhi ']== "LOCALPC" &&$_post[' Fenjuan ']== ' yes ') {$msgs []=] only choose to back up to the server to use the split-volume backup function "; Show_msg ($MSGS); Pageend ();} if ($_post[' Fenjuan ']== "yes" &&!$_post[' filesize ']) {$MSGS []=] You have selected the volume backup function, but not the volume file size "; Show_msg ($MSGS); Pageend ();} if ($_post[' Weizhi ']== "Server" &&!writeable ($backup)) {$MSGS []= backup file directory ' $backup ' not writable, please modify the directory attribute '; Show_msg ($MSGS); Pageend ();} /*----------back up all Tables-------------*/if ($_post[' Bfzl ']== "Quanbubiao") {/*----* * /*----does not */if (!$_post[' Fenjuan ')) {/* *-------------------------------- if (! $tables = $d->query ("Show Table status from $mysqldb") {$MSGS []= read database structure ERROR] 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 []=] All data table data backup completed, generate backup file ' $backup/$filename '; else $msgs []=] failed to back up all data tables; Show_msg ($MSGS); Pageend (); } /*-----------------do not roll over */}/*-----------------------* * /*-----------------*/else{/*-------------------------* * if (!$_post[' filesize ']) {$msgs []= "Please fill in the backup file volume size"; show_msg ($MSGS);p ageend ();} if (! $tables = $d->query ("Show Table status from $mysqldb") {$MSGS []= read database structure ERROR] 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 []=] All data tables-volumes-". $p." -Data backup complete, generate backup file ' $backup/$filename '; else $MSGS []= Backup Table-". $_post[' tablename ']." -Failure "; $p + +; $filename =date ("Ymd", Time ()). " _all "; $sql = "";} } } if ($sql!= "") {$filename. = ("_v". $p. ") SQL "); if (Write_file ($sql, $filename)) $MSGS []=] All data tables-volumes-". $p." -Data backup complete, generate backup file ' $backup/$filename ';} Show_msg ($MSGS); /*---------------------The end of the */}/*--------------------------------------* * /*--------Backup All tables End */}/*---------------------------------------------* * /*--------Backup sheet------*/elseif ($_post[' Bfzl ']== "Danbiao") {/*------------* * if (!$_post[' tablename ']) {$msgs []=] Select the datasheet to back up, show_msg ($MSGS); Pageend ();} /*--------does not */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 []= table-". $_post[' tablename ']." -Data backup complete, generate backup file ' $backup/$filename '; else $MSGS []= Backup Table-". $_post[' tablename ']." -Failure "; Show_msg ($MSGS); Pageend (); } /*----------------do not roll over */}/*------------------------------------* * /*----------------*/else{/*--------------------------------------* * if (!$_post[' filesize ']) {$msgs []= "Please fill in the backup file volume size"; show_msg ($MSGS);p ageend ();} $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 []= table-". $_post[' tablename ']." -Volume-". $p." -Data backup complete, generate backup file ' $backup/$filename '; else $MSGS []= Backup Table-". $_post[' tablename ']." -Failure "; $p + +; $filename =date ("Ymd", Time ()). " _ ". $_post[' tablename ']; $sql = "";} } if ($sql!= "") {$filename. = ("_v". $p. ") SQL "); if (Write_file ($sql, $filename)) $msgs []= table-". $_post[' tablename ']." -Volume-". $p." -Data backup complete, generate backup file ' $backup/$filename ';} Show_msg ($MSGS); /*----------The end of the */}/*--------------------------------------------------* * /*----------Backup sheet End */}/*----------------------------------------------* * /*---*/}/*-------------main program End------------------------------------------* * function Write_file ($sql, $filename) { $re =true; Global $backup; 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. " "; $d->query ("Show create TABLE". $table); $d->nextrecord (); $tmp =preg_replace ("//", "", $d->f ("CREATE TABLE")); $sql. = $tmp. " "; return $sql; } function Make_record ($table, $num _fields) {Global $d; $comma = ""; $sql. = "INSERT into". $table. "VALUES ("; for ($i = 0; $i < $num _fields; $i + +) {$sql. = ($comma. "" ". Mysql_escape_string ($d->record[$i]). $comma = ",";} $sql. = ")"; return $sql; } function Show_msg ($MSGS) { $title = "Hint:"; echo "<table width= ' 100% ' border= ' 0 ' cellpadding= ' 0 ' cellspacing= ' 0 ' >"; echo "<tr><td>". $title. " </td></tr> "; echo "<tr><td><br><ul>"; while (list ($k, $v) =each ($MSGS)) { echo "<li>". $v. " </li> "; } echo "</ul></td></tr></table>"; } function Pageend () { Exit (); } ?> </div><br/><br/> </div> </div> </body>
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 ("Connection server failed."); @mysql_select_db ($database, $this->linkid) or Die ("Unable to open database"); 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 is 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 query error <br>"; echo "query statement:". $sql. " <br> "; echo "error message:". $err; } /**************************************** class End ***************************/ Global $mysqlhost, $mysqluser, $mysqlpwd, $mysqldb, $backup; $mysqlhost = $mydbhost; Host Name $mysqluser = $mydbuser; Login Name $mysqlpwd = $MYDBPW; Password $mysqldb = $mydbname; Name of database $d =new db ($mysqlhost, $mysqluser, $mysqlpwd, $MYSQLDB); $d->query ("Set names ' UTF8 '"); |