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导出Redis数据到另一个Redis中的代码
Mar 12 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
PHP经典面试题集锦
Mar 19 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
WAF的正确bypass
Jan 05 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 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笔记之:AOP的应用
2013/04/24 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
新手简单了解vue
2019/05/29 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python机器学习实战之树回归详解
2017/12/20 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
中学教师自我鉴定
2014/02/07 职场文书
2014年质检工作总结
2014/11/26 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android