83 lines
2.1 KiB
PHP
83 lines
2.1 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\admin\controller;
|
|
|
|
|
|
use think\Db;
|
|
|
|
class DatabaseController extends Controller
|
|
{
|
|
|
|
//表
|
|
public function table()
|
|
{
|
|
$data = db()->query('SHOW TABLE STATUS');
|
|
$data = array_map('array_change_key_case', $data);
|
|
$this->assign([
|
|
'data' => $data,
|
|
'total' => count($data),
|
|
]);
|
|
return $this->fetch();
|
|
}
|
|
|
|
//查看表信息
|
|
public function view($name)
|
|
{
|
|
if (!$name) {
|
|
return admin_error('请指定要查看的表');
|
|
}
|
|
|
|
$field_list = Db::query('SHOW FULL COLUMNS FROM `' . $name . '`');
|
|
|
|
$data = [];
|
|
foreach ($field_list as $key => $value) {
|
|
$data[] = [
|
|
'name' => $value['Field'],
|
|
'type' => $value['Type'],
|
|
'collation' => $value['Collation'],
|
|
'null' => $value['Null'],
|
|
'key' => $value['Key'],
|
|
'default' => $value['Default'],
|
|
'extra' => $value['Extra'],
|
|
'privileges' => $value['Privileges'],
|
|
'comment' => $value['Comment'],
|
|
];
|
|
}
|
|
|
|
$this->assign([
|
|
'data' => $data,
|
|
]);
|
|
return $this->fetch();
|
|
}
|
|
|
|
|
|
//优化表
|
|
public function optimize($name)
|
|
{
|
|
if (!$name) {
|
|
return admin_error('请指定要优化的表');
|
|
}
|
|
$name = is_array($name) ? implode('`,`', $name) : $name;
|
|
$result = db()->query("OPTIMIZE TABLE `{$name}`");
|
|
if ($result) {
|
|
return admin_success("数据表`{$name}`优化成功");
|
|
}
|
|
return admin_error("数据表`{$name}`优化失败");
|
|
}
|
|
|
|
//修复表
|
|
public function repair($name)
|
|
{
|
|
if (!$name) {
|
|
return admin_error('请指定要修复的表');
|
|
}
|
|
$name = is_array($name) ? implode('`,`', $name) : $name;
|
|
$result = db()->query("REPAIR TABLE `{$name}`");
|
|
if ($result) {
|
|
return admin_success("数据表`{$name}`修复成功");
|
|
}
|
|
return admin_error("数据表`{$name}`修复失败");
|
|
}
|
|
|
|
} |