"; if (empty($tablename)) { echo "没有指定表名"; } else { // 获取创建表的 SQL 语句 $dsql->SetQuery("SELECT sql FROM sqlite_master WHERE type='table' AND name='$tablename'"); $dsql->Execute('me'); $row = $dsql->GetArray('me', SQLITE3_ASSOC); if ($row) { $createTableSql = $row['sql']; echo "创建表的 SQL 语句:\n"; echo trim($createTableSql) . "\n\n"; } // 获取表的列信息 $dsql->SetQuery("PRAGMA table_info($tablename)"); $dsql->Execute('cols'); echo "表的列信息:\n"; while ($colRow = $dsql->GetArray('cols', SQLITE3_ASSOC)) { echo "列名: " . $colRow['name'] . ", 类型: " . $colRow['type'] . ", 是否为主键: " . ($colRow['pk'] ? '是' : '否') . "\n"; } } echo ''; exit(); } else { echo ""; if (empty($tablename)) { echo "没有指定表名"; } else { $dsql->SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename); $dsql->Execute('me'); $row2 = $dsql->GetArray('me', MYSQL_BOTH); $ctinfo = $row2[1]; echo trim($ctinfo); } echo ''; } exit(); } //优化表 else if ($dopost == "opimize") { echo ""; if (empty($tablename)) { echo "没有指定表名"; } else { if ($cfg_dbtype == 'sqlite') { $rs = $dsql->ExecuteNoneQuery("VACUUM"); if ($rs) { echo "执行优化表 {$tablename} 完成<br>"; } else { echo "执行优化表 {$tablename} 失败,原因是:" . $dsql->GetError(); } } else { $rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`"); if ($rs) { echo "执行优化表".$tablename."完成<br>"; } else { echo "执行优化表".$tablename."失败,原因是:".$dsql->GetError(); } } } echo ''; exit(); } //修复表 else if ($dopost == "repair") { echo ""; if (empty($tablename)) { echo "没有指定表名"; } else { $rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename`"); if ($rs) { echo "修复表".$tablename."完成<br>"; } else { echo "修复表".$tablename."失败,原因是:".$dsql->GetError(); } } echo ''; exit(); } //获取系统存在的表信息 $otherTables = array(); $dedeSysTables = array(); $channelTables = array(); $dsql->SetQuery("SELECT addtable FROM `#@__channeltype`"); $dsql->Execute(); while ($row = $dsql->GetObject()) { $channelTables[] = $row->addtable; } $dsql->SetQuery("SHOW TABLES"); $dsql->Execute('t'); while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { if (preg_match("#^{$cfg_dbprefix}#", $row[0]) || in_array($row[0], $channelTables)) { $dedeSysTables[] = $row[0]; } else { $otherTables[] = $row[0]; } } $mysql_version = $dsql->GetVersion(); include DedeInclude('templets/sys_data.htm'); function TjCount($tbname, &$dsql) { $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM $tbname"); return $row['dd']; } ?>