国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.7KB

  1. <?php
  2. /**
  3. * 数据库备份还原
  4. *
  5. * @version $id:sys_data.php 17:19 2010年7月20日 tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__)."/config.php");
  12. if (DEDEBIZ_SAFE_MODE) {
  13. die(DedeAlert("系统已启用安全模式,无法使用当前功能",ALERT_DANGER));
  14. }
  15. CheckPurview('sys_Data');
  16. if (empty($dopost)) $dopost = '';
  17. if ($cfg_dbtype == 'sqlite') {
  18. showMsg('备份系统根目录下/data/'.$cfg_dbname.'.db文件即可', 'javascript:;');
  19. exit();
  20. }
  21. if ($dopost == "viewinfo") //查看表结构
  22. {
  23. echo "<xmp>";
  24. if (empty($tablename)) {
  25. echo "没有指定表名";
  26. } else {
  27. $dsql->SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename);
  28. $dsql->Execute('me');
  29. $row2 = $dsql->GetArray('me', MYSQL_BOTH);
  30. $ctinfo = $row2[1];
  31. echo trim($ctinfo);
  32. }
  33. echo '</xmp>';
  34. exit();
  35. } else if ($dopost == "opimize") //优化表
  36. {
  37. echo "<xmp>";
  38. if (empty($tablename)) {
  39. echo "没有指定表名";
  40. } else {
  41. $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`");
  42. if ($rs) {
  43. echo "执行优化表<span class='text-primary'>$tablename</span>完成<br>";
  44. } else {
  45. echo "执行优化表<span class='text-primary'>$tablename</span>失败,原因是:".$dsql->GetError();
  46. }
  47. }
  48. echo '</xmp>';
  49. exit();
  50. } else if ($dopost == "repair") //修复表
  51. {
  52. echo "<xmp>";
  53. if (empty($tablename)) {
  54. echo "没有指定表名";
  55. } else {
  56. $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename`");
  57. if ($rs) {
  58. echo "修复表<span class='text-primary'>$tablename</span>完成<br>";
  59. } else {
  60. echo "修复表<span class='text-primary'>$tablename</span>失败,原因是:".$dsql->GetError();
  61. }
  62. }
  63. echo '</xmp>';
  64. exit();
  65. }
  66. //获取系统存在的表信息
  67. $otherTables = array();
  68. $dedeSysTables = array();
  69. $channelTables = array();
  70. $dsql->SetQuery("SELECT addtable FROM `#@__channeltype`");
  71. $dsql->Execute();
  72. while ($row = $dsql->GetObject()) {
  73. $channelTables[] = $row->addtable;
  74. }
  75. $dsql->SetQuery("SHOW TABLES");
  76. $dsql->Execute('t');
  77. while ($row = $dsql->GetArray('t', MYSQL_BOTH)) {
  78. if (preg_match("#^{$cfg_dbprefix}#", $row[0]) || in_array($row[0], $channelTables)) {
  79. $dedeSysTables[] = $row[0];
  80. } else {
  81. $otherTables[] = $row[0];
  82. }
  83. }
  84. $mysql_version = $dsql->GetVersion();
  85. include DedeInclude('templets/sys_data.htm');
  86. function TjCount($tbname, &$dsql)
  87. {
  88. $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM $tbname");
  89. return $row['dd'];
  90. }
  91. ?>