| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 | <?phpdefine('EmpireCMSAdmin','1');require("../../class/connect.php");require("../../class/db_sql.php");require("../../class/functions.php");require("class/functions.php");$link=db_connect();$empire=new mysqlquery();//验证用户$lur=is_login();$logininid=$lur['userid'];$loginin=$lur['username'];$loginrnd=$lur['rnd'];$loginlevel=$lur['groupid'];$loginadminstyleid=$lur['adminstyleid'];//ehash$ecms_hashur=hReturnEcmsHashStrAll();//验证权限CheckLevel($logininid,$loginin,$classid,"dbdata");$bakpath=$public_r['bakdbpath'];$mydbname=RepPostVar($_GET['mydbname']);if(empty($mydbname)){	printerror("NotChangeBakTable","history.go(-1)");}//选择数据库$udb=$empire->usequery("use `".$mydbname."`");//查询$and="";$keyboard=RepPostVar($_GET['keyboard']);$sear=RepPostStr($_GET['sear'],1);if(empty($sear)){	$keyboard=$dbtbpre;}if($keyboard){	$and=" LIKE '%$keyboard%'";}$sql=$empire->query("SHOW TABLE STATUS".$and);//存放目录$mypath=$mydbname."_".date("YmdHis").make_password(6);?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>选择数据表</title><link href="../adminstyle/<?=$loginadminstyleid?>/adminstyle.css" rel="stylesheet" type="text/css"><script language="JavaScript">function CheckAll(form)  {  for (var i=0;i<form.elements.length;i++)    {    var e = form.elements[i];    if(e.name=='bakstru'||e.name=='bakstrufour'||e.name=='beover'||e.name=='autoauf'||e.name=='baktype'||e.name=='bakdatatype')		{		continue;	    }	if (e.name != 'chkall')       e.checked = form.chkall.checked;    }  }function reverseCheckAll(form){  for (var i=0;i<form.elements.length;i++)  {    var e = form.elements[i];    if(e.name=='bakstru'||e.name=='bakstrufour'||e.name=='beover'||e.name=='autoauf'||e.name=='baktype'||e.name=='bakdatatype')	{		continue;	}	if (e.name != 'chkall')	{	   if(e.checked==true)	   {       		e.checked = false;	   }	   else	   {	  		e.checked = true;	   }	}  }}function SelectCheckAll(form)  {  for (var i=0;i<form.elements.length;i++)    {    var e = form.elements[i];    if(e.name=='bakstru'||e.name=='bakstrufour'||e.name=='beover'||e.name=='autoauf'||e.name=='baktype'||e.name=='bakdatatype')		{		continue;	    }	if (e.name != 'chkall')	  	e.checked = true;    }  }function check(){	var ok;	ok=confirm("确认要执行此操作?");	return ok;}</script></head><body><table width="100%" border="0" align="center" cellpadding="3" cellspacing="1"><form name="searchtb" method="GET" action="ChangeTable.php"><?=$ecms_hashur['eform']?><input name="sear" type="hidden" id="sear" value="1"><input name="mydbname" type="hidden" value="<?=$mydbname?>">  <tr>     <td width="58%">位置:备份数据 -> <a href="ChangeDb.php<?=$ecms_hashur['whehref']?>">选择数据库</a> -> <a href="ChangeTable.php?mydbname=<?=$mydbname?><?=$ecms_hashur['ehref']?>">选择备份表</a> (<?=$mydbname?>)</td>      <td width="42%"><div align="center">查询:           <input name="keyboard" type="text" id="keyboard" value="<?=$keyboard?>">          <input type="submit" name="Submit3" value="显示数据表">        </div></td>  </tr>  <tr>     <td height="25" colspan="2"><div align="center">          备份步骤:选择数据库 -> <font color="#FF0000">选择要备份的表</font> -> 开始备份 ->           完成</div></td>  </tr></form></table><form action="phome.php" method="post" name="ebakchangetb" target="_blank" onsubmit="return check();" autocomplete="off">  <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" class="tableborder">  <?=$ecms_hashur['form']?>    <tr class="header">       <td height="25">备份参数设置:         <input name="phome" type="hidden" id="phome2" value="DoEbak">         <input name="mydbname" type="hidden" id="mydbname" value="<?=$mydbname?>">        </td>    </tr>    <tr>       <td height="25" bgcolor="#FFFFFF">         <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">          <tr>             <td width="23%"><input type="radio" name="baktype" value="0"<?=$dbaktype==0?' checked':''?>>               <strong>按文件大小备份</strong> </td>            <td width="77%" height="23"> 每组备份大小:               <input name="filesize" type="text" id="filesize" value="300" size="6">              KB <font color="#666666">(1 MB = 1024 KB)</font></td>          </tr>          <tr>             <td><input type="radio" name="baktype" value="1"<?=$dbaktype==1?' checked':''?>>               <strong>按记录数备份</strong></td>            <td height="23">每组备份               <input name="bakline" type="text" id="bakline" value="500" size="6">              条记录,               <input name="autoauf" type="checkbox" id="autoauf" value="1" checked>              自动识别自增字段<font color="#666666">(此方式效率更高)</font></td>          </tr>          <tr>             <td>备份数据库结构</td>            <td height="23"><input name="bakstru" type="checkbox" id="bakstru" value="1" checked>               <font color="#666666">(没特殊情况,请选择)</font></td>          </tr>          <tr>             <td valign="top">数据编码</td>            <td height="23"> <select name="dbchar" id="dbchar">                <option value="auto"<?=$ddbchar=='auto'?' selected':''?>>自动识别编码</option>                <option value=""<?=$ecms_config['db']['setchar']==''?' selected':''?>>不设置</option>                <option value="gbk"<?=$ecms_config['db']['setchar']=='gbk'?' selected':''?>>gbk</option>                <option value="utf8"<?=$ecms_config['db']['setchar']=='utf8'?' selected':''?>>utf8</option>                <option value="gb2312"<?=$ecms_config['db']['setchar']=='gb2312'?' selected':''?>>gb2312</option>                <option value="big5"<?=$ecms_config['db']['setchar']=='big5'?' selected':''?>>big5</option>                <option value="latin1"<?=$ecms_config['db']['setchar']=='latin1'?' selected':''?>>latin1</option>              </select> <font color="#666666">(从mysql4.0导入mysql4.1以上版本需要选择固定编码,不能选自动)</font></td>          </tr>          <tr>            <td valign="top">数据存放格式</td>            <td height="23"><input name="bakdatatype" type="radio" value="0">              正常               <input type="radio" name="bakdatatype" value="1" checked>              十六进制方式<font color="#666666">(十六进制备份文件会占用更多的空间)</font></td>          </tr>          <tr>             <td>存放目录</td>            <td height="23">admin/ebak/               <?=$bakpath?>              /               <input name="mypath" type="text" id="mypath" value="<?=$mypath?>">               <input type="button" name="Submit2" value="选择目录" onclick="javascript:window.open('ChangePath.php?change=1&toform=ebakchangetb<?=$ecms_hashur['ehref']?>','','width=600,height=500,scrollbars=yes');">               <font color="#666666">(目录不存在,系统会自动建立)</font></td>          </tr>          <tr>             <td valign="top">备份选项</td>            <td height="23">导入方式:               <select name="insertf" id="insertf">                <option value="replace">REPLACE</option>                <option value="insert">INSERT</option>              </select>              ,               <input name="beover" type="checkbox" id="beover" value="1"<?=$dbeover==1?' checked':''?>>              完整插入,               <input name="bakstrufour" type="checkbox" id="bakstrufour" value="1">               <a title="需要转换数据表编码时选择">转成MYSQL4.0格式</a>, 每组备份间隔:               <input name="waitbaktime" type="text" id="waitbaktime" value="0" size="2">              秒</td>          </tr>          <tr>             <td valign="top">备份说明<br> <font color="#666666">(系统会生成一个readme.txt)</font></td>            <td height="23"><textarea name="readme" cols="80" rows="8" id="readme"></textarea></td>          </tr>          <tr>             <td valign="top">去除自增值的字段列表:<br> <font color="#666666">(格式:<strong>表名.字段名</strong><br>              多个请用","格开)</font></td>            <td height="23"><textarea name="autofield" cols="80" rows="5" id="autofield"></textarea></td>          </tr>        </table>      </td>    </tr>    <tr class="header">       <td height="25">选择要备份的表:( <a href="#ebak" onclick="SelectCheckAll(document.ebakchangetb)"><u>全选</u></a>         | <a href="#ebak" onclick="reverseCheckAll(document.ebakchangetb);"><u>反选</u></a>         )</td>    </tr>    <tr>      <td height="25" bgcolor="#FFFFFF"><table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">          <tr bgcolor="#DBEAF5">             <td width="5%" height="23"> <div align="center">选择</div></td>            <td width="27%" height="23" bgcolor="#DBEAF5"> <div align="center">表名(点击查看字段)</div></td>            <td width="13%" height="23" bgcolor="#DBEAF5"> <div align="center">类型</div></td>            <td width="15%" bgcolor="#DBEAF5"><div align="center">编码</div></td>            <td width="15%" height="23"> <div align="center">记录数</div></td>            <td width="14%" height="23"> <div align="center">大小</div></td>            <td width="11%" height="23"> <div align="center">碎片</div></td>          </tr>          <?		  $totaldatasize=0;//总数据大小		  $tablenum=0;//总表数		  $datasize=0;//数据大小		  $rownum=0;//总记录数		  while($r=$empire->fetch($sql))		  {		  $rownum+=$r[Rows];		  $tablenum++;		  $datasize=$r[Data_length]+$r[Index_length];		  $totaldatasize+=$r[Data_length]+$r[Index_length]+$r[Data_free];		  $collation=$r[Collation]?$r[Collation]:'---';		  ?>          <tr id=tb<?=$r[Name]?>>             <td height="23"> <div align="center">                 <input name="tablename[]" type="checkbox" id="tablename[]" value="<?=$r[Name]?>" onclick="if(this.checked){tb<?=$r[Name]?>.style.backgroundColor='#F1F7FC';}else{tb<?=$r[Name]?>.style.backgroundColor='#ffffff';}" checked>              </div></td>            <td height="23"> <a href="#ebak" onclick="window.open('ListField.php?mydbname=<?=$mydbname?>&mytbname=<?=$r[Name]?><?=$ecms_hashur['ehref']?>','','width=660,height=500,scrollbars=yes');" title="点击查看表字段列表">               <?=$r[Name]?>              </a></td>            <td height="23"> <div align="center">                <?=$r[Type]?$r[Type]:$r[Engine]?>              </div></td>            <td><div align="center">				<?=$collation?>			</div></td>            <td height="23"> <div align="right">                <?=$r[Rows]?>              </div></td>            <td height="23"> <div align="right">                <?=Ebak_ChangeSize($datasize)?>              </div></td>            <td height="23"> <div align="right">                <?=Ebak_ChangeSize($r[Data_free])?>              </div></td>          </tr>          <?		  }		  db_close();		  $empire=null;		  ?>          <tr bgcolor="#DBEAF5">             <td height="23"> <div align="center">                <input type=checkbox name=chkall value=on onclick=CheckAll(this.form) checked>              </div></td>            <td height="23"> <div align="center">                 <?=$tablenum?>              </div></td>            <td height="23"> <div align="center">---</div></td>            <td><div align="center">---</div></td>            <td height="23"> <div align="center">                <?=$rownum?>              </div></td>            <td height="23" colspan="2"> <div align="center">                <?=Ebak_ChangeSize($totaldatasize)?>              </div></td>          </tr>        </table></td>    </tr>    <tr class="header">       <td height="25"><div align="center">          <input type="submit" name="Submit" value="开始备份" onclick="document.ebakchangetb.phome.value='DoEbak';">                          <input type="submit" name="Submit2" value="修复数据表" onclick="document.ebakchangetb.phome.value='DoRep';">                          <input type="submit" name="Submit22" value="优化数据表" onclick="document.ebakchangetb.phome.value='DoOpi';">                        <input type="submit" name="Submit22" value="删除数据表" onclick="document.ebakchangetb.phome.value='DoDrop';">		                <input type="submit" name="Submit22" value="清空数据表" onclick="document.ebakchangetb.phome.value='EmptyTable';">		</div></td>    </tr>  </table></form></body></html>
 |