📄 sql.php
字号:
if ($row['Comment'] == 'FULLTEXT') { $fulltextkeys[$row['Key_name']] = TRUE; } $tablekeys[$row['Key_name']][$row['Seq_in_index']] = $row['Column_name']; ksort($tablekeys[$row['Key_name']]); } mysql_free_result($result); foreach ($tablekeys as $keyname => $keyfieldnames) { $structureline = ''; if ($keyname == 'PRIMARY') { $structureline .= 'PRIMARY '; } else { $structureline .= ($fulltextkeys[$keyname] ? 'FULLTEXT ' : ''); $structureline .= ($uniquekeys[$keyname] ? 'UNIQUE ' : ''); } $structureline .= 'KEY'.(($keyname == 'PRIMARY') ? '' : ' '.$keyname); $structureline .= ' ('.implode(',', $keyfieldnames).')'; $structurelines[] = $structureline; } $tablestructure = 'DROP TABLE IF EXISTS '.$dbname.'.'.$SelectedTables["$dbname"]["$t"].';#%%'.$LineTerminator.''; $tablestructure .= 'CREATE TABLE '.$dbname.'.'.$SelectedTables["$dbname"]["$t"].' ('.$LineTerminator; $tablestructure .= ' '.implode(','.$LineTerminator.' ', $structurelines).$LineTerminator; $tablestructure .= ');#%%'.$LineTerminator.$LineTerminator; $alltablesstructure .= str_replace(' ,', ',', $tablestructure); //$tablestructure=' DROP TABLE IF EXISTS '.$dbname.'.'.$SelectedTables["$dbname"]["$t"].';#%%.'.$LineTerminator.''; } // end table structure backup } if ($GZ_enabled) { //gzwrite($zp, $droptable.$LineTerminator, strlen($droptable) + strlen($LineTerminator)); gzwrite($zp, $alltablesstructure.$LineTerminator, strlen($alltablesstructure) + strlen($LineTerminator)); } else { fwrite($fp, $alltablesstructure.$LineTerminator, strlen($alltablesstructure) + strlen($LineTerminator)); } if ($DHTMLenabled) { echo '<SCRIPT>statusinfo.innerHTML=""</SCRIPT>'; } if ($_REQUEST['StartBackup'] != 'structure') { $processedrows = 0; foreach ($SelectedTables as $dbname => $value) { mysql_select_db($dbname); for ($t = 0; $t < count($SelectedTables["$dbname"]); $t++) { $result = mysql_query('SELECT * FROM '.$SelectedTables["$dbname"]["$t"]); $rows["$t"] = mysql_num_rows($result); if ($rows["$t"] > 0) { $tabledatadumpline = '# '.$mysql_in_file_dump_msg.' '.$dbname.'.'.$SelectedTables["$dbname"]["$t"].$LineTerminator; if ($GZ_enabled) { gzwrite($zp, $tabledatadumpline, strlen($tabledatadumpline)); } else { fwrite($fp, $tabledatadumpline, strlen($tabledatadumpline)); } } unset($fieldnames); for ($i = 0; $i < mysql_num_fields($result); $i++) { $fieldnames[] = mysql_field_name($result, $i); } if ($_REQUEST['StartBackup'] == 'complete') { $insertstatement = 'INSERT INTO '.BACKTICKCHAR.$SelectedTables["$dbname"]["$t"].BACKTICKCHAR.' ('.implode(', ', $fieldnames).') VALUES ('; } else { $insertstatement = 'INSERT INTO '.BACKTICKCHAR.$SelectedTables["$dbname"]["$t"].BACKTICKCHAR.' VALUES ('; } $currentrow = 0; $thistableinserts = ''; while ($row = mysql_fetch_array($result)) { unset($valuevalues); foreach ($fieldnames as $key => $val) { $valuevalues[] = mysql_escape_string($row["$key"]); } $thistableinserts .= $insertstatement.QUOTECHAR.implode(QUOTECHAR.', '.QUOTECHAR, $valuevalues).QUOTECHAR.');#%%'.$LineTerminator; if (strlen($thistableinserts) >= BUFFER_SIZE) { if ($GZ_enabled) { gzwrite($zp, $thistableinserts, strlen($thistableinserts)); } else { fwrite($fp, $thistableinserts, strlen($thistableinserts)); } $thistableinserts = ''; } if ((++$currentrow % 1000) == 0) { set_time_limit(60); if ($DHTMLenabled) { echo '<SCRIPT>rows_'.$dbname.'_'.$SelectedTables["$dbname"]["$t"].'.innerHTML="<B>'.$SelectedTables["$dbname"]["$t"].' ('.number_format($rows["$t"]).' records, ['.number_format(($currentrow / $rows["$t"])*100).'%])</B>"</SCRIPT>'; $elapsedtime = getmicrotime() - $starttime; $percentprocessed = ($processedrows + $currentrow) / $overallrows; echo '<SCRIPT>topprogress.innerHTML = "'.$mysql_progress.' '.number_format($processedrows + $currentrow).' / '.number_format($overallrows).' ('.number_format($percentprocessed * 100, 1).'% done) ['.FormattedTimeRemaining($elapsedtime).' elapsed'; if (($percentprocessed > 0) && ($percentprocessed < 1)) { echo ', '.FormattedTimeRemaining(abs($elapsedtime - ($elapsedtime / $percentprocessed))).' remaining'; } echo ']"</SCRIPT>'; ob_flush(); flush(); } } } if ($DHTMLenabled) { echo '<SCRIPT>rows_'.$dbname.'_'.$SelectedTables["$dbname"]["$t"].'.innerHTML="'.$SelectedTables["$dbname"]["$t"].' ('.number_format($rows["$t"]).' records, [100%])"</SCRIPT>'; $processedrows += $rows["$t"]; } if ($GZ_enabled) { gzwrite($zp, $thistableinserts.$LineTerminator.$LineTerminator, strlen($thistableinserts) + strlen($LineTerminator) + strlen($LineTerminator)); } else { fwrite($fp, $thistableinserts.$LineTerminator.$LineTerminator, strlen($thistableinserts) + strlen($LineTerminator) + strlen($LineTerminator)); } } } } if ($GZ_enabled) { gzclose($zp); } else { fclose($fp); } echo '<BR>'.$mysql_back_complete.' '.FormattedTimeRemaining(getmicrotime() - $starttime, 2, $mysql_days_last, $mysql_hours_last, $mysql_min_last, $mysql_sec_last).'.<BR>'; echo '<A class="admin" HREF="'; if ($_REQUEST['StartBackup'] == 'structure') { if (file_exists($backupabsolutepath.$strubackupfilename)) { unlink($backupabsolutepath.$strubackupfilename); // Windows won't allow overwriting via rename } rename($backupabsolutepath.$tempbackupfilename, $backupabsolutepath.$strubackupfilename); echo 'sql/'.$strubackupfilename.'"><B>'.$strubackupfilename.'</B> ('.nice_filesize(filesize($backupabsolutepath.$strubackupfilename), 2); } else if ($backuptype == 'full') { if (file_exists($backupabsolutepath.$fullbackupfilename)) { unlink($backupabsolutepath.$fullbackupfilename); // Windows won't allow overwriting via rename } rename($backupabsolutepath.$tempbackupfilename, $backupabsolutepath.$fullbackupfilename); echo 'sql/'.$fullbackupfilename.'"><B>'.$fullbackupfilename.'</B> ('.nice_filesize(filesize($backupabsolutepath.$fullbackupfilename), 2); } else { if (file_exists($backupabsolutepath.$partbackupfilename)) { unlink($backupabsolutepath.$partbackupfilename); // Windows won't allow overwriting via rename } rename($backupabsolutepath.$tempbackupfilename, $backupabsolutepath.$partbackupfilename); echo 'sql/'.$partbackupfilename.'"><B>'.$partbackupfilename.'</B> ('.nice_filesize(filesize($backupabsolutepath.$partbackupfilename), 2); } echo ')</A><BR><BR><A class="admin" HREF="admin.php?page=sql&plugins=1">'.$mysql_back_menu_long.'</A><BR>'; } else { echo ''.$mysql_open_warn1.''.$backupabsolutepath.$tempbackupfilename.' '.$mysql_open_warn2.''; }}/*########################################################### Optimize tables#########################################################*/elseif(@$_GET['job']=="optimize"){ print("<BR><B>$optimize_tables</B><hr noshade>"); $db_name_list = mysql_list_dbs(); while (list($dbname) = mysql_fetch_array($db_name_list)) { { $tables = @mysql_list_tables($dbname); if (!empty($tables)) { /* prevent optimizing and display of tables if we have now access rights */ $columns = @mysql_num_rows($tables); if($columns>0) { echo '<TABLE class=admintable><TR><TH class=maintable COLSPAN="4" align="center"><B>'.$dbname.'</B></TH></TR>'; print("<tr><td class=admintable><b>$opt_table_name</b></td><td class=admintable><b>$opt_table_check</b></td><td class=admintable><b>$opt_table_optimize</b></td><td class=admintable><b>$opt_table_msg</b></td></tr>"); print("<tr>"); while (list($tablename) = mysql_fetch_row($tables)) { print("<td class=admintable>$tablename</td>"); $check_result = mysql_query('CHECK TABLE '.$tablename); while ($row = mysql_fetch_array($check_result)) { if ($row['Msg_text']== "OK") { print("<td class=admintable style='background-color: #32CD32;'>$row[Msg_text]</td>"); /* check went OK doing optimize */ if(mysql_query('OPTIMIZE TABLE '.$tablename)) { print("<td class=admintable style='background-color: #32CD32;'>OK</td>"); }else { print("<td class=admintable style='background-color: #FF0000;'>ERROR</td>"); } } if ($row['Msg_type']):print("<td class=admintable>$row[Msg_type]</td>");endif; } print("</tr>"); } print("</tr><br>"); print("</table>"); } } }}print("<br><hr noshade>");echo '<BR><A class="admin" HREF="admin.php?page=sql&plugins=1">'.$mysql_back_menu_long.'</A><BR><BR><BR>';}/*########################################################### Restore DB#########################################################*/elseif(@$_GET['job']=="restore"){if (!empty($_GET['restorefile'])){ if ($GZ_enabled) { $filename=gzread(gzopen($backupabsolutepath.$_GET['restorefile'], "rb"), filesize($backupabsolutepath.$_GET['restorefile'])); } else { $filename=fread(fopen($backupabsolutepath.$_GET['restorefile'], "rb"), filesize($backupabsolutepath.$_GET['restorefile'])); } //if(eregi(";#%%\n", $query_content)); $query_content=explode(";#%%$LineTerminator",$filename); while(list($id,$query_value)=each($query_content)) { //if(eregi(";#%%\n", $query_content)); mysql_query($query_value) or die(mysql_error()); } print("<b>$_GET[restorefile] $restore_success</b>");}else{ print("$restore_error");}}else { // !$_REQUEST['StartBackup'] /*############################################################# ### BACKUP part #############################################################*/ echo "<B>$backup</B><hr noshade>"; if (file_exists($backupabsolutepath.$fullbackupfilename)) { echo ''.$mysql_date_msg.' '.gmdate('F j, Y g:ia T', time() + date('Z')).'<BR>'; echo ''.$mysql_last_backup.''; $lastbackuptime = filemtime($backupabsolutepath.$fullbackupfilename); echo gmdate('F j, Y g:ia T', $lastbackuptime + date('Z')); echo ' (<B>'.FormattedTimeRemaining(time() - $lastbackuptime, 1, $mysql_days_last, $mysql_hours_last, $mysql_min_last, $mysql_sec_last).'</B> '.$ago.')<BR>'; if ((time() - $lastbackuptime) < 86400) { print ("$mysql_backup_hint<BR>"); } echo '<BR><A class="admin" HREF="'.'sql/'.$fullbackupfilename.'">'.$mysql_down_backup.'('.nice_filesize(filesize($backupabsolutepath.$fullbackupfilename), 2).')</A> '.$mysql_down_backup1.''; } else { print("<br>$mysql_unknown_backup:"); } if(file_exists($backupabsolutepath.$partbackupfilename)) { echo '<BR><A class="admin" HREF="'.'sql/'.$partbackupfilename.'">'.$mysql_down_backup_part.'('.nice_filesize(filesize($backupabsolutepath.$partbackupfilename), 2).')</A> '.$mysql_down_backup1.''; } if(file_exists($backupabsolutepath.$strubackupfilename)) { echo '<BR><A class="admin" HREF="'.'sql/'.$strubackupfilename.'">'.$mysql_down_backup_struct.'('.nice_filesize(filesize($backupabsolutepath.$strubackupfilename), 2).')</A> '.$mysql_down_backup1.''; } echo '<BR><BR><A class="admin" HREF="'.@$PHP_SELF.'?StartBackup=complete&page=sql&plugins=1"><B>'.$mysql_href_recom.'<font color="#FF0000">*</font></font></B></A><BR>'; echo '<A class="admin" HREF="'.@$PHP_SELF.'?StartBackup=standard&page=sql&plugins=1">'.$mysql_href_standard.'</A><BR>'; echo '<A class="admin" HREF="'.@$PHP_SELF.'?StartBackup=partial&page=sql&plugins=1">'.$mysql_href_partial.'</A><BR>'; echo '<A class="admin" HREF="'.@$PHP_SELF.'?StartBackup=structure&page=sql&plugins=1">'.$mysql_href_structure.'</A><BR>'; /*############################################################# ### RESTORE part ############################################################# print("<BR><B>$restore</B><hr noshade>"); echo "DO NOT USE, BROKEN!!...<br>"; //global $restorefile; if(file_exists($backupabsolutepath.$fullbackupfilename)) { print("<A class='admin' HREF='$PHP_SELF?page=sql&plugins=1&job=restore&restorefile=$fullbackupfilename'>$restore_last_fullback </a>"); $last_full_time = filemtime($backupabsolutepath.$fullbackupfilename); $form_time=gmdate('F j, Y ', $last_full_time + date('Z')); $size=nice_filesize(filesize($backupabsolutepath.$fullbackupfilename), 2); print(" ($form_time $size) <br>"); } if(file_exists($backupabsolutepath.$partbackupfilename)) { print("<A class='admin' HREF='$PHP_SELF?page=sql&plugins=1&job=restore&restorefile=$partbackupfilename'>$restore_last_partback </a>"); $last_part_time = filemtime($backupabsolutepath.$partbackupfilename); $form_time=gmdate('F j, Y ', $last_part_time + date('Z')); $size=nice_filesize(filesize($backupabsolutepath.$partbackupfilename), 2); print(" ($form_time $size) <br>"); }*/ /*############################################################# ### OPTIMIZE part #############################################################*/ print("<BR><B>$optimize</B><hr noshade>"); print("<A class='admin' HREF='".@$PHP_SELF."?page=sql&plugins=1&job=optimize'>$opt_start_msg</A><BR><br>"); /* full backup hint message */ echo '<font color="#FF0000"><b>* </b></font>'.$fullback_hint_msg.'<br><br>'; echo "</blockquote>";}function FormattedTimeRemaining($seconds, $precision=1, $mysql_days_last, $mysql_hours_last, $mysql_min_last, $mysql_sec_last) { if ($seconds > 86400) { return number_format($seconds / 86400, $precision)." $mysql_days_last"; } else if ($seconds > 3600) { return number_format($seconds / 3600, $precision)." $mysql_hours_last"; } else if ($seconds > 60) { return number_format($seconds / 60, $precision)." $mysql_min_last"; } return number_format($seconds, $precision)." $mysql_sec_last";}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -