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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
php 高效率写法 推荐
Feb 21 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
php实现递归与无限分类的方法
Feb 16 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP实现与java 通信的插件使用教程
Aug 11 PHP
PHP设计模式之组合模式定义与应用示例
Feb 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中filter函数校验数据的方法详解
2015/07/31 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
js 操作符汇总
2014/11/08 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
Python学习小技巧之列表项的排序
2017/05/20 Python
Python判断两个对象相等的原理
2017/12/12 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
优秀学生获奖感言
2014/02/15 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
领导视察通讯稿
2015/07/18 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS