|
|
@@ -15,14 +15,14 @@ if (empty($dopost)) { |
|
|
|
$win = new OxWindow(); |
|
|
|
$win->Init("sys_repair.php", "/static/web/js/admin.blank.js", "POST' enctype='multipart/form-data'"); |
|
|
|
$wintitle = "系统修复工具"; |
|
|
|
$win->AddTitle('系统修复工具用于检测和修复系统数据错误'); |
|
|
|
$win->AddTitle('系统修复工具用于检测并修复数据错误'); |
|
|
|
$msg = "<tr> |
|
|
|
<td> |
|
|
|
由于手动升级时会员没运行指定的SQL语句,或自动升级的遗漏处理或处理出错,会导致一些错误,使用本工具会自动检测并处理,本工具目前主要执行下面动作:<br> |
|
|
|
1、修复/优化数据表<br> |
|
|
|
2、更新缓存<br> |
|
|
|
3、检测系统变量一致性<br> |
|
|
|
4、检测微表与主表数据一致性 |
|
|
|
<p>由于手动升级未运行指定SQL语句,或自动升级过程中出现遗漏或错误,可能会导致一些问题。使用本工具可自动检测并处理这些问题。目前,本工具主要执行以下操作:</p> |
|
|
|
<p>1、修复/优化数据表</p> |
|
|
|
<p>2、更新缓存</p> |
|
|
|
<p>3、检测系统变量一致性</p> |
|
|
|
<p>4、检测微表与主表数据一致性</p> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
@@ -38,14 +38,15 @@ else if ($dopost == 1) { |
|
|
|
$win = new OxWindow(); |
|
|
|
$win->Init("sys_repair.php", "/static/web/js/admin.blank.js", "POST' enctype='multipart/form-data'"); |
|
|
|
$wintitle = "检测数据结构"; |
|
|
|
$win->AddTitle('系统修复工具用于检测和修复系统数据错误'); |
|
|
|
$win->AddTitle('系统修复工具用于检测并修复数据错误'); |
|
|
|
$msg = "<tr> |
|
|
|
<td> |
|
|
|
已完成数据结构完整性检测:<br> |
|
|
|
1、获取主键失败,无法进行后续操作<br> |
|
|
|
2、更新数据库#@__archivess表时出错<br> |
|
|
|
3、列表显示数据目与实际文档数不一致 |
|
|
|
<p>已完成数据结构完整性检测:</p> |
|
|
|
<p>1、获取主键失败,无法进行后续操作</p> |
|
|
|
<p>2、更新数据库#@__archivess表时出错</p> |
|
|
|
<p>3、列表显示数据目与实际文档数不一致</p> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td align='center'><a href='sys_repair.php?dopost=2' class='btn btn-success btn-sm'>下一步</a></td> |
|
|
|
</tr>"; |
|
|
@@ -60,7 +61,7 @@ else if ($dopost == 2) { |
|
|
|
$allarcnum = 0; |
|
|
|
$row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__archives`"); |
|
|
|
$allarcnum = $arcnum = $row['dd']; |
|
|
|
$msg .= "#@__archives表总记录数:{$arcnum}<br>"; |
|
|
|
$msg .= "<p>#@__archives表总记录数:{$arcnum}</p>"; |
|
|
|
$shtables = array(); |
|
|
|
$dsql->Execute('me', "SELECT addtable FROM `#@__channeltype` WHERE id < -1 "); |
|
|
|
while ($row = $dsql->GetArray('me')) { |
|
|
@@ -71,21 +72,21 @@ else if ($dopost == 2) { |
|
|
|
if (!isset($shtables[$addtable])) { |
|
|
|
$shtables[$addtable] = 1; |
|
|
|
$row = $dsql->GetOne("SELECT COUNT(aid) AS dd FROM `$addtable`"); |
|
|
|
$msg .= "{$addtable} 表总记录数:{$row['dd']} <br>"; |
|
|
|
$msg .= "<p>{$addtable}表总记录数:{$row['dd']}</p>"; |
|
|
|
$allarcnum += $row['dd']; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
$msg .= "总有效记录数:{$allarcnum}<br>"; |
|
|
|
$msg .= "<p>总有效记录数:{$allarcnum}</p>"; |
|
|
|
$errall = "<a href='index_body.php' class='btn btn-success btn-sm'>完成修复</a>"; |
|
|
|
$row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__arctiny`"); |
|
|
|
$msg .= "微统计表记录数:{$row['dd']}<br>"; |
|
|
|
$msg .= "<p>微统计表记录数:{$row['dd']}</p>"; |
|
|
|
if ($row['dd'] == $allarcnum) { |
|
|
|
$msg .= "两者记录一致,无需修复<br>"; |
|
|
|
$msg .= "<p>两者记录一致,无需修复</p>"; |
|
|
|
} else { |
|
|
|
$sql = "TRUNCATE TABLE `#@__arctiny`"; |
|
|
|
$dsql->ExecuteNoneQuery($sql); |
|
|
|
$msg .= "两者记录不一致,尝试进行简单修复<br>"; |
|
|
|
$msg .= "<p>两者记录不一致,尝试进行简单修复</p>"; |
|
|
|
//导入普通模型微数据 |
|
|
|
$sql = "INSERT INTO `#@__arctiny` (id,typeid,typeid2,arcrank,channel,senddate,sortrank,mid) SELECT id,typeid,typeid2,arcrank,channel,senddate,sortrank,mid FROM `#@__archives` "; |
|
|
|
$dsql->ExecuteNoneQuery($sql); |
|
|
@@ -97,17 +98,17 @@ else if ($dopost == 2) { |
|
|
|
} |
|
|
|
$row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__arctiny`"); |
|
|
|
if ($row['dd'] == $allarcnum) { |
|
|
|
$msg .= "修复记录成功<br>"; |
|
|
|
$msg .= "<p>修复记录成功</p>"; |
|
|
|
} else { |
|
|
|
$msg .= "修复记录失败,建议高级结合检测<br>"; |
|
|
|
$errall = "<a href='sys_repair.php?dopost=3' class='btn btn-success btn-sm'>结合检测</a> "; |
|
|
|
$msg .= "<p>修复记录失败,建议高级检测</p>"; |
|
|
|
$errall = "<a href='sys_repair.php?dopost=3' class='btn btn-success btn-sm'>高级检测</a>"; |
|
|
|
} |
|
|
|
} |
|
|
|
UpDateCatCache(); |
|
|
|
$win = new OxWindow(); |
|
|
|
$win->Init("sys_repair.php", "/static/web/js/admin.blank.js", "POST' enctype='multipart/form-data'"); |
|
|
|
$wintitle = "检测微表数据"; |
|
|
|
$win->AddTitle('系统修复工具用于检测和修复系统数据错误'); |
|
|
|
$win->AddTitle('系统修复工具用于检测并修复数据错误'); |
|
|
|
$msg = "<tr> |
|
|
|
<td>{$msg}</td> |
|
|
|
</tr> |
|
|
@@ -153,7 +154,7 @@ else if ($dopost == 3) { |
|
|
|
$win = new OxWindow(); |
|
|
|
$win->Init("sys_repair.php", "/static/web/js/admin.blank.js", "POST' enctype='multipart/form-data'"); |
|
|
|
$wintitle = "高级检测"; |
|
|
|
$win->AddTitle('系统修复工具用于检测和修复系统数据错误'); |
|
|
|
$win->AddTitle('系统修复工具用于检测并修复数据错误'); |
|
|
|
$msg = "<tr> |
|
|
|
<td>完成所有修复操作,移除错误记录{$errnum}条</td> |
|
|
|
</tr> |
|
|
|