php生成mysql的数据字典


Posted in PHP onJuly 07, 2016

把mysql数据库生成数据字典,直接可用便于查看数据库表、字段,做一个数据字典是很有必要的,下面只需要简单更改下配置就可以用了,样式也是挺好的。

<?php 
header('content-type:text/html;charset=utf-8'); 
define('DB_HOST','localhost'); 
define('DB_USER','root'); 
define('DB_PASS','root'); 
define('DB_NAME','test'); 
define('DB_PORT',3306); 
define('DB_CHAR','utf8'); 
define('APPNAME',''); 
$conn=mysql_connect(DB_HOST.':'.DB_PORT,DB_USER,DB_PASS); 
mysql_select_db(DB_NAME); 
mysql_query('set names ' . DB_CHAR); 
$sql="SHOW TABLE STATUS FROM " . DB_NAME; 
$result=mysql_query($sql); 
$array=array(); 
while($rows=mysql_fetch_assoc($result)){ 
$array[]=$rows; 
} 
// table count 
$tab_count = count($array); 
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="zh"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>'.APPNAME.'--数据字典</title> 
<style type="text/css"> 
  table caption, table th, table td { 
    padding: 0.1em 0.5em 0.1em 0.5em; 
    margin: 0.1em; 
    vertical-align: top; 
  } 
  th { 
    font-weight: bold; 
    color: black; 
    background: #D3DCE3; 
  } 
  table tr.odd th, .odd { 
    background: #E5E5E5; 
  } 
  table tr.even th, .even { 
    background: #f3f3f3; 
  } 
  .db_table{ 
    border-top:1px solid #333; 
  } 
  .title{font-weight:bold;} 
</style> 
</head> 
<body> 
<div style="text-align:center;background:#D3DCE3;font-size:19px;"> 
  <b>'.APPNAME.'--数据字典</b> 
</div> 
<div style="background:#f3f3f3;text-align:center;">(注:共'.$tab_count.'张表,按ctrl+F查找关键字)</div>'."\n"; 
for($i=0;$i<$tab_count;$i++){ 
echo '<ul type="square">'."\n"; 
echo ' <li class="title">'; 
echo ($i+1).'、表名:[' . $array[$i]['Name'] . ']   注释:' . $array[$i]['Comment']; 
echo '</li>'."\n"; 
//查询数据库字段信息 
$tab_name = $array[$i]['Name']; 
$sql_tab='show full fields from `' . $array[$i]['Name'].'`'; 
$tab_result=mysql_query($sql_tab); 
$tab_array=array(); 
  
while($r=mysql_fetch_assoc($tab_result)){ 
  $tab_array[]=$r; 
} 
//show keys 
$keys_result=mysql_query("show keys from `".$array[$i]['Name'].'`',$conn); 
$arr_keys=mysql_fetch_array($keys_result); 
  echo '<li style="list-style: none outside none;"><table border="0" class="db_table" >'; 
  echo '<tr class="head"> 
    <th style="width:110px">字段</th> 
    <th>类型</th> 
    <th>为空</th> 
    <th>额外</th> 
    <th>默认</th> 
    <th style="width:95px">整理</th> 
    <th>备注</th></tr>'; 
  for($j=0;$j<count($tab_array);$j++){ 
    $key_name=$arr_keys['Key_name']; 
    if($key_name="PRIMARY"){ 
      $key_name='主键('.$key_name.')'; 
    } 
    $key_field=$arr_keys['Column_name']; 
    if ( $tab_array[$j]['Field']==$key_field){ 
      $key_value="PK"; 
    }else{ 
      $key_value=""; 
    } 
    echo '    <tr class="'.($j%2==0?"odd":"even").'">'."\n"; 
    echo '     <td>' . $tab_array[$j]['Field'] . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Type'] . '</td>'."\n"; 
    echo '     <td>' . ($key_value!=''?$key_value:$tab_array[$j]['Null']) . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Extra'] . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Default'] . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Collation'] . '</td>'."\n"; 
    echo '     <td>' . ($key_value!=''?$key_name:$tab_array[$j]['Comment']) . '</td>'."\n"; 
    echo '    </tr>'."\n"; 
  } 
  echo ' </table></li>'."\n"; 
  echo '</ul>'."\n"; 
  
} 
echo '</body>'."\n"; 
echo '</html>'."\n";

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP开启gzip页面压缩实例代码
Mar 11 PHP
如何设置mysql允许外网访问
Jun 04 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
yii2.0框架场景的简单使用示例
Jan 25 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 #PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 #PHP
PHP使用自定义方法实现数组合并示例
Jul 07 #PHP
PHP记录和读取JSON格式日志文件
Jul 07 #PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 #PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
Jul 07 #PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 #PHP
You might like
php文件上传类完整实例
2016/05/14 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
javascript 节点排序 2
2011/01/31 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
WxPython实现无边框界面
2019/11/18 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
环境工程大学生个人的自我评价
2013/10/08 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
公司董事任命书
2015/09/21 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
Python实现照片卡通化
2021/12/06 Python