您的当前位置:首页>全部文章>文章详情

ThinkPHP6获取数据库内所有表的表名及表信息

发表于:2022-08-18 09:51:01浏览:1574次TAG: #ThinkPHP #PHP #MySql #数据库

thinkphp6 如何获取数据表所有的表名及表信息?下面就给大家介绍简单实用的方法,对ThinkPHP6数据库表管理,获取数据库内所有表的信息,包括表名、引擎、行格式、数据量、数据大小、索引长度、修改时间、创建时间、注释等信息。
图片alt

1、Controller控制器代码:

<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\BaseController;
use think\facade\Db;
use think\facade\View;
class Database
{
    public function datadb()
    {
        $this->showdb('cms_gougucms',2);//调用函数
        return View::fetch('datadb/database');
    }
    /**
     * 数据表信息查询方法
     * table_name 数据表名
     * mode 查询模式 1:查询指定表信息(需要table_name) 2:查询所有表信息
     * @return 返回数据表信息Array数组
     */
    public function showdb($table_name,$mode=1)
    {
        if($mode==1){
            //查询指定表信息
            $table_info = Db::query('SHOW TABLE STATUS LIKE ' . "'" . $table_name . "'");
        }
        if($mode==2){
            //查询所有表信息
            $table_info = Db::query('SHOW TABLE STATUS');
        }
        //查询所有表名
        //$table_list = Db::query('SHOW TABLES');
        View::assign('table_info',$table_info);//模板变量赋值
    }
}

2、模板文件的HTML代码,通过volist标签循环输出:

<div class="layui-card-body layui-table-body layui-table-main">
    <table class="layui-table layui-form">
        <thead>
            <th>
                <input type="checkbox" lay-filter="checkall" name="" lay-skin="primary">
            </th>
            <th>ID</th>
            <th>表名</th>
            <th>数据量</th>
            <th>数据大小</th>
            <th>创建时间</th>
            <th>注释</th>
            <th>备份状态</th>
            <th>操作</th>
        </thead>
        <tbody>
        {volist name="table_info" id="v"}
        <tr>
            <th>
                <input type="checkbox" lay-filter="checkall" name="" lay-skin="primary">
            </th>
            <td>{$i}</td>
            <td>{$v.Name}</td>
            <td>{$v.Rows}</td>
            <td>{$v.Data_length}B</td>
            <td>{$v.Create_time}</td>
            <td>{$v.Comment}</td>
            <td class="info">备份未开始</td>
            <td>
                <a href="javascript:;" class="layui-btn layui-btn-xs optimiz" tables="tplay_admin">优化表</a> 
                <a href="javascript:;" class="layui-btn layui-btn-xs repair" tables="tplay_admin">修复表</a>
            </td>
        </tr>
        {/volist}
        </tbody>
    </table>
</div>

ThinkPHP6获取数据库中某个表的所有字段名称。

$table_info = Db::query("show COLUMNS FROM admin");

结果:
图片alt