生成数据字典的代码以及展示效果

5 篇文章 0 订阅
0 篇文章 0 订阅
//数据字典生成代码
public function getMysqlData()
{
    //配置数据库
    $dbserver   = "";      //数据库服务器ip
    $dbusername = "";      //数据库用户名
    $dbpassword = "";      //密码
    $database   = '';      //数据库名
    $title = '数据字典';
    //下面是连接数据库
    $mysql_conn = mysqli_connect("$dbserver", "$dbusername", "$dbpassword") or die("Mysql connect is error.");
    mysqli_select_db($mysql_conn,$database);
    mysqli_query($mysql_conn,'SET NAMES utf8');
    $table_result = mysqli_query($mysql_conn,'show tables');
    //取得所有的表名
    while ($row = mysqli_fetch_array($table_result)) {
        $tables[]['TABLE_NAME'] = $row[0];
    }
    //循环取得所有表的备注
    foreach ($tables AS $k=>$v) {
        $sql  = 'SELECT * FROM ';
        $sql .= 'INFORMATION_SCHEMA.TABLES ';
        $sql .= 'WHERE ';
        $sql .= "table_name = '{$v['TABLE_NAME']}'  AND table_schema = '{$database}'";
        $table_result = mysqli_query($mysql_conn,$sql);
        while ($t = mysqli_fetch_array($table_result) ) {
            $tables[$k]['TABLE_COMMENT'] = $t['TABLE_COMMENT'];
        }
        $sql  = 'SELECT * FROM ';
        $sql .= 'INFORMATION_SCHEMA.COLUMNS ';
        $sql .= 'WHERE ';
        $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database}'";
        $fields = array();
        $field_result = mysqli_query($mysql_conn,$sql);
        while ($t = mysqli_fetch_array($field_result) ) {
            $fields[] = $t;
        }
        $tables[$k]['COLUMN'] = $fields; 
     }
     mysqli_close($mysql_conn);


     $html = '';
     //循环所有表拼接字符串
     foreach ($tables AS $k=>$v) {
         $html .= '<p><h2 style="text-align:center;">'. $v['TABLE_COMMENT'] . ' </h2>';
         $html .= '<table  border="1" cellspacing="0" cellpadding="0" align="center">';
         $html .= '<caption>' . $v['TABLE_NAME'] . '</caption>';
         $html .= '<tbody><tr><th>字段名</th><th>数据类型</th><th>默认值</th>
         <th>允许非空</th>
         <th>自动递增</th><th>备注</th></tr>';
         $html .= '';

         foreach ($v['COLUMN'] AS $f) {
             $html .= '<tr><td class="c1">' . $f['COLUMN_NAME'] . '</td>';
             $html .= '<td class="c2">' . $f['COLUMN_TYPE'] . '</td>';
             $html .= '<td class="c3"> ' . $f['COLUMN_DEFAULT'] . '</td>';
             $html .= '<td class="c4"> ' . $f['IS_NULLABLE'] . '</td>';
             $html .= '<td class="c5">' . ($f['EXTRA']=='auto_increment'?'是':' ') . '</td>';
             $html .= '<td class="c6"> ' . $f['COLUMN_COMMENT'] . '</td>';
             $html .= '</tr>';
         }
         $html .= '</tbody></table></p>';
     }


     //打印在页面中
     echo '<html>
     <head>
     <title>' . $title . '</title>
     <style>
     body,td,th {font-family:"宋体"; font-size:12px;}
     table{border-collapse:collapse;border:1px solid #CCC;background:#efefef;}
     table caption{text-align:left; background-color:#fff; line-height:2em; font-size:14px; font-weight:bold; }
     table th{text-align:left; font-weight:bold;height:26px; line-height:26px; font-size:12px; border:1px solid #CCC;}
     table td{height:20px; font-size:12px; border:1px solid #CCC;background-color:#fff;}
     .c1{ width: 120px;}
     .c2{ width: 120px;}
     .c3{ width: 70px;}
     .c4{ width: 80px;}
     .c5{ width: 80px;}
     .c6{ width: 270px;}
     </style>
     </head>
     <body>';
     echo '<h1 style="text-align:center;">' . $title . '</h1>';
     echo $html;
     echo '</body></html>';
}

在浏览器访问展示效果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值