|
|
@@ -22,13 +22,13 @@ if ($dopost == "viewinfo") { |
|
|
|
if (empty($tablename)) { |
|
|
|
echo "没有指定表名"; |
|
|
|
} else { |
|
|
|
// 获取创建表的 SQL 语句 |
|
|
|
//获取创建表的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 = str_replace(" ", "\r\n", $row['sql']); |
|
|
|
echo trim($createTableSql) . "\n\n"; |
|
|
|
echo trim($createTableSql)."\n\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
echo '</xmp>'; |
|
|
@@ -57,7 +57,7 @@ else if ($dopost == "opimize") { |
|
|
|
if ($rs) { |
|
|
|
echo "执行优化表 {$tablename} 完成<br>"; |
|
|
|
} else { |
|
|
|
echo "执行优化表 {$tablename} 失败,原因是:" . $dsql->GetError(); |
|
|
|
echo "执行优化表 {$tablename} 失败,原因是:".$dsql->GetError(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename`"); |
|
|
@@ -77,7 +77,7 @@ else if ($dopost == "opimizeAll") { |
|
|
|
if ($rs) { |
|
|
|
echo "执行数据库完成<br>"; |
|
|
|
} else { |
|
|
|
echo "执行数据库失败,原因是:" . $dsql->GetError(); |
|
|
|
echo "执行数据库失败,原因是:".$dsql->GetError(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { |
|
|
@@ -91,42 +91,42 @@ else if ($dopost == "opimizeAll") { |
|
|
|
} |
|
|
|
exit(); |
|
|
|
} |
|
|
|
// 修复表 |
|
|
|
//修复表 |
|
|
|
else if ($dopost == "repair") { |
|
|
|
CheckCSRF(); |
|
|
|
if (empty($tablename)) { |
|
|
|
echo "没有指定表名"; |
|
|
|
} else { |
|
|
|
if ($cfg_dbtype =='sqlite') { |
|
|
|
// SQLite 数据库使用 VACUUM 尝试修复和优化 |
|
|
|
//SQLite数据库使用VACUUM尝试修复和优化 |
|
|
|
$rs = $dsql->ExecuteNoneQuery("VACUUM"); |
|
|
|
if ($rs) { |
|
|
|
echo "对表 {$tablename} 尝试修复和优化完成<br>"; |
|
|
|
} else { |
|
|
|
echo "对表 {$tablename} 尝试修复和优化失败,原因是:" . $dsql->GetError(); |
|
|
|
echo "对表 {$tablename} 尝试修复和优化失败,原因是:".$dsql->GetError(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 非 SQLite 数据库(如 MySQL)使用 REPAIR TABLE 语句 |
|
|
|
//非SQLite数据库(如 MySQL)使用REPAIR TABLE语句 |
|
|
|
$rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `{$tablename}`"); |
|
|
|
if ($rs) { |
|
|
|
echo "修复表 {$tablename} 完成<br>"; |
|
|
|
} else { |
|
|
|
echo "修复表 {$tablename} 失败,原因是:" . $dsql->GetError(); |
|
|
|
echo "修复表 {$tablename} 失败,原因是:".$dsql->GetError(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
exit(); |
|
|
|
} |
|
|
|
// 修复全部表 |
|
|
|
//修复全部表 |
|
|
|
else if ($dopost == "repairAll") { |
|
|
|
CheckCSRF(); |
|
|
|
if ($cfg_dbtype =='sqlite') { |
|
|
|
// SQLite 数据库使用 VACUUM 尝试修复和优化整个数据库 |
|
|
|
//SQLite 数据库使用VACUUM尝试修复和优化整个数据库 |
|
|
|
$rs = $dsql->ExecuteNoneQuery("VACUUM"); |
|
|
|
if ($rs) { |
|
|
|
echo "对所有表尝试修复和优化完成<br>"; |
|
|
|
} else { |
|
|
|
echo "对所有表尝试修复和优化失败,原因是:" . $dsql->GetError(); |
|
|
|
echo "对所有表尝试修复和优化失败,原因是:".$dsql->GetError(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$dsql->SetQuery("Show Tables"); |
|
|
@@ -136,7 +136,7 @@ else if ($dopost == "repairAll") { |
|
|
|
if ($rs) { |
|
|
|
echo "修复表 {$row[0]} 完成<br>"; |
|
|
|
} else { |
|
|
|
echo "修复表 {$row[0]} 失败,原因是: " . $dsql->GetError(); |
|
|
|
echo "修复表 {$row[0]} 失败,原因是: ".$dsql->GetError(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@@ -211,47 +211,20 @@ else if ($dopost == "query") { |
|
|
|
exit(); |
|
|
|
} else if ($dopost == "docs") { |
|
|
|
if ($cfg_dbtype == 'sqlite') { |
|
|
|
die("SQLite 数据库不支持此功能"); |
|
|
|
die("SQLite数据库不支持此功能"); |
|
|
|
} |
|
|
|
CheckCSRF(); |
|
|
|
$dsql->SetQuery("SHOW TABLES"); |
|
|
|
$dsql->Execute('t'); |
|
|
|
$output = '<!DOCTYPE html> |
|
|
|
<html lang="en"> |
|
|
|
<html> |
|
|
|
<head> |
|
|
|
<meta charset="UTF-8"> |
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
|
<link rel="stylesheet" href="/static/web/css/bootstrap.min.css"> |
|
|
|
<link rel="stylesheet" href="/static/web/css/admin.css"> |
|
|
|
<title>DedeBIZ数据库文档</title> |
|
|
|
<style> |
|
|
|
body { |
|
|
|
background-color: #f4f6f9; |
|
|
|
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; |
|
|
|
} |
|
|
|
.card { |
|
|
|
border: none; |
|
|
|
border-radius: 10px; |
|
|
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
|
|
|
transition: transform 0.2s ease-in-out; |
|
|
|
} |
|
|
|
.card:hover { |
|
|
|
transform: translateY(-5px); |
|
|
|
} |
|
|
|
.card-header { |
|
|
|
background-color: #1eb867; |
|
|
|
color: white; |
|
|
|
border-top-left-radius: 10px; |
|
|
|
border-top-right-radius: 10px; |
|
|
|
} |
|
|
|
.table thead th { |
|
|
|
background-color: #e9ecef; |
|
|
|
padding: 10px; |
|
|
|
} |
|
|
|
.table tbody td { |
|
|
|
padding: 10px; |
|
|
|
} |
|
|
|
</style> |
|
|
|
<style>.card{border:none;border-radius:0.5rem;box-shadow:0 4px 8px rgba(0,0,0,0.1);transition:transform 0.5s}.card:hover{transform:translateY(-0.25rem)}.card-header{background-color:#1eb867;color:white;border-top-left-radius:0.5rem!important;border-top-right-radius:0.5rem!important}.table thead th{background-color:#e9ecef;padding:0.5rem}.table tbody td{padding:0.5rem}</style> |
|
|
|
</head> |
|
|
|
<body> |
|
|
|
<div class="container-fluid"> |
|
|
@@ -260,24 +233,22 @@ else if ($dopost == "query") { |
|
|
|
<li class="breadcrumb-item active"><a href="sys_sql_query.php">SQL命令工具</a></li> |
|
|
|
<li class="breadcrumb-item">数据库文档</li> |
|
|
|
</ol>'; |
|
|
|
|
|
|
|
while ($row = $dsql->GetArray('t', MYSQL_BOTH)) { |
|
|
|
$tableName = $row[0]; |
|
|
|
$output .= '<div class="card mb-4"> |
|
|
|
$output .= '<div class="card mb-3"> |
|
|
|
<div class="card-header"> |
|
|
|
<span>表名: ' . $tableName . '</span> |
|
|
|
<span>表名: '.$tableName.'</span> |
|
|
|
</div> |
|
|
|
<div class="card-body">'; |
|
|
|
// 获取表的注释 |
|
|
|
//获取表的注释 |
|
|
|
$dsql->SetQuery("SELECT TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '$tableName'"); |
|
|
|
$dsql->Execute('c'); |
|
|
|
$tableCommentRow = $dsql->GetArray('c', MYSQL_BOTH); |
|
|
|
$tableComment = $tableCommentRow['TABLE_COMMENT']; |
|
|
|
if (!empty($tableComment)) { |
|
|
|
$output .= '<p><strong>表注释:</strong> ' . $tableComment . '</p>'; |
|
|
|
$output .= '<p><strong>表注释:</strong> '.$tableComment.'</p>'; |
|
|
|
} |
|
|
|
|
|
|
|
// 获取表的字段信息 |
|
|
|
//获取表的字段信息 |
|
|
|
$dsql->SetQuery("SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '$tableName'"); |
|
|
|
$dsql->Execute('col'); |
|
|
|
$output .= '<table class="table table-striped table-bordered"> |
|
|
@@ -299,28 +270,25 @@ else if ($dopost == "query") { |
|
|
|
$columnComment = $colRow['COLUMN_COMMENT']; |
|
|
|
|
|
|
|
$output .= '<tr> |
|
|
|
<td>' . $columnName . '</td> |
|
|
|
<td>' . $columnType . '</td> |
|
|
|
<td>' . $isNullable . '</td> |
|
|
|
<td>' . ($columnDefault!== null? $columnDefault : '无') . '</td> |
|
|
|
<td>' . $columnComment. '</td> |
|
|
|
<td>'.$columnName.'</td> |
|
|
|
<td>'.$columnType.'</td> |
|
|
|
<td>'.$isNullable.'</td> |
|
|
|
<td>'.($columnDefault !== null? $columnDefault : '无').'</td> |
|
|
|
<td>'.$columnComment. '</td> |
|
|
|
</tr>'; |
|
|
|
} |
|
|
|
$output .= '</tbody> |
|
|
|
</table> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div>'; |
|
|
|
} |
|
|
|
|
|
|
|
$output .= '</div> |
|
|
|
<footer class="bg-light text-center py-3"> |
|
|
|
<p class="mb-0">版权所有 © ' . date('Y') . ' <a href="https://www.dedebiz.com/?from=dbdocs" class="text-success">DedeBIZ</a> 保留所有权利。</p> |
|
|
|
<p class="mb-0">版权所有 © '.date('Y').' <a href="https://www.dedebiz.com/?from=dbdocs" class="text-success">DedeBIZ</a> 保留所有权利。</p> |
|
|
|
</footer> |
|
|
|
</body> |
|
|
|
</html>'; |
|
|
|
|
|
|
|
// 输出 HTML 文档 |
|
|
|
//输出网页文档 |
|
|
|
header('Content-Type: text/html'); |
|
|
|
echo $output; |
|
|
|
exit(); |
|
|
|