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

93 lines
2.9KB

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