您的位置:首页 > 数据库

快速从数据库中直接获取数据字典

2016-11-24 10:47 543 查看
      2016年11月4号,我第一天上班,快下班的时候,老大让我做出数据字典。在那之前,我可是只会powerdesigner导出数据字典啊。然后他告诉我,可以写个小的php程序实现,没有思路的自己回去抱家里大神的大腿,大神刷刷的百度看看,就写出来了。内心简直就在呼喊:“我什么时候也是这样就好了!!!”不过后来悲剧的事情发生了,数据库代码里面没有字段意思,后来老大让我手动补齐中文,花了我一天半啊

,ctr+f
 ctr+c   ctr+v。我发誓发奋图强啊

,我不要总是这样ctr+f  ctr+c   ctr+v。我要做大神,定个小目标,先挣它一个亿,哈哈哈

(以上均为小菜鸟程序媛的自诉,大神勿喷)

一下为实现的整个代码:

      说白了,也就是对information_schema的查询操作,然后循环显示而已。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格式导出</title>
<style type="text/css">
table.gridtable{
font-family:微软雅黑;
font-size:12px;
width:100%;
color:#333333;
border-width:1px;
border-color:#666666;
border-collapse:collapse;
}
table.gridtable th{
border-width:1px;
padding:10px;
border-style:solid;
border-color:#666666;
background-color:#dedede;
}
table.gridtable td{
border-width:1px;
padding:10px;
border-style:solid;
border-color:#666666;
background-color:#ffffff;
}
</style>
</head>
<body>
<?php
$db = new mysqli('localhost','root','','coscia_erp88');
if(mysqli_connect_errno())
{
echo "数据库连接失败";die;
}
$db->query('set names utf8');
$sql_tables = "SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'coscia_erp88'"; //查询表名及其备注
$ret_tables = $db->query($sql_tables);
if(!$ret_tables)
{
echo '未查询到表单';die;
}
while($row_tables = mysqli_fetch_assoc($ret_tables))
{
$currentTable = $row_tables['TABLE_NAME'];
?>
<br>
<p>
<b>表名:<?php echo $row_tables['TABLE_NAME']?></b>  
<b>备注:<?php echo $row_tables['TABLE_COMMENT']?></b>
</p>
<?php
$sql_column = "SELECT
`COLUMN_NAME`,
`COLUMN_TYPE`,
`COLUMN_DEFAULT`,
CASE`IS_NULLABLE` WHEN 'Yes' THEN '是' ELSE '否'END IS_NULLABLE,
CASE `EXTRA` WHEN 'auto_increment' THEN '是' ELSE ' ' END EXTRA,
`COLUMN_COMMENT`
FROM
information_schema.`COLUMNS`
WHERE
TABLE_NAME = '".$currentTable."'
AND TABLE_SCHEMA = 'coscia_erp88'"; //查询每一张表的字段名,数据类型,默认值,是否允许为空,是否递增以及备注
$ret_column = $db->query($sql_column);
if(!$ret_column)
{
echo '未查询到字段名等数据';die;
}
?>
<table class="gridtable">
<tr>
<th>字段名</th>
<th>数据类型</th>
<th>默认值</th>
<th>允许非空</th>
<th>是否递增</th>
<th>备注</th>
</tr>
<?php
while($row_colunm = mysqli_fetch_assoc($ret_column))
{
?>
<tr>
<td><?php echo $row_colunm['COLUMN_NAME']?></td>
<td><?php echo $row_colunm['COLUMN_TYPE']?></td>
<td><?php echo $row_colunm['COLUMN_DEFAULT']?></td>
<td><?php echo $row_colunm['IS_NULLABLE']?></td>
<td><?php echo $row_colunm['EXTRA']?></td>
<td><?php echo $row_colunm['COLUMN_COMMENT']?></td>
</tr>
<?php
}
?>
</table>
<?php
}
?>
</body>
</html>

以下为最后的成果截图,本身为html文件,但是可以保存为doc嘛!


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息