国内流行的内容管理系统(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.

114 lines
2.9KB

  1. <?php
  2. /**
  3. * 数据库备份/还原
  4. *
  5. * @version $Id: sys_data.php 1 17:19 2010年7月20日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2020, DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__)."/config.php");
  12. CheckPurview('sys_Data');
  13. if(empty($dopost)) $dopost = '';
  14. if ( $cfg_dbtype == 'sqlite' )
  15. {
  16. showMsg('备份系统根目录下/data/'.$cfg_dbname.'.db文件即可', 'javascript:;');
  17. exit();
  18. }
  19. if($dopost=="viewinfo") //查看表结构
  20. {
  21. echo "[<a href='#' onclick='javascript:HideObj(\"_mydatainfo\")'><u>关闭</u></a>]\r\n<xmp>";
  22. if(empty($tablename))
  23. {
  24. echo "没有指定表名!";
  25. }
  26. else
  27. {
  28. $dsql->SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename);
  29. $dsql->Execute('me');
  30. $row2 = $dsql->GetArray('me',MYSQL_BOTH);
  31. $ctinfo = $row2[1];
  32. echo trim($ctinfo);
  33. }
  34. echo '</xmp>';
  35. exit();
  36. }
  37. else if($dopost=="opimize") //优化表
  38. {
  39. echo "[<a href='#' onclick='javascript:HideObj(\"_mydatainfo\")'><u>关闭</u></a>]\r\n<xmp>";
  40. if(empty($tablename))
  41. {
  42. echo "没有指定表名!";
  43. }
  44. else
  45. {
  46. $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename` ");
  47. if($rs)
  48. {
  49. echo "执行优化表: $tablename OK!";
  50. }
  51. else
  52. {
  53. echo "执行优化表: $tablename 失败,原因是:".$dsql->GetError();
  54. }
  55. }
  56. echo '</xmp>';
  57. exit();
  58. }
  59. else if($dopost=="repair") //修复表
  60. {
  61. echo "[<a href='#' onclick='javascript:HideObj(\"_mydatainfo\")'><u>关闭</u></a>]\r\n<xmp>";
  62. if(empty($tablename))
  63. {
  64. echo "没有指定表名!";
  65. }
  66. else
  67. {
  68. $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename` ");
  69. if($rs)
  70. {
  71. echo "修复表: $tablename OK!";
  72. }
  73. else
  74. {
  75. echo "修复表: $tablename 失败,原因是:".$dsql->GetError();
  76. }
  77. }
  78. echo '</xmp>';
  79. exit();
  80. }
  81. //获取系统存在的表信息
  82. $otherTables = Array();
  83. $dedeSysTables = Array();
  84. $channelTables = Array();
  85. $dsql->SetQuery("SELECT addtable FROM `#@__channeltype` ");
  86. $dsql->Execute();
  87. while($row = $dsql->GetObject())
  88. {
  89. $channelTables[] = $row->addtable;
  90. }
  91. $dsql->SetQuery("SHOW TABLES");
  92. $dsql->Execute('t');
  93. while($row = $dsql->GetArray('t',MYSQL_BOTH))
  94. {
  95. if(preg_match("#^{$cfg_dbprefix}#", $row[0])||in_array($row[0],$channelTables))
  96. {
  97. $dedeSysTables[] = $row[0];
  98. }
  99. else
  100. {
  101. $otherTables[] = $row[0];
  102. }
  103. }
  104. $mysql_version = $dsql->GetVersion();
  105. include DedeInclude('templets/sys_data.htm');
  106. function TjCount($tbname,&$dsql)
  107. {
  108. $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM $tbname");
  109. return $row['dd'];
  110. }