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 相关文章推荐
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
php jsonp单引号转义
Nov 23 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 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
dedecms系统常用术语汇总
2007/04/03 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php-fpm中max_children的配置
2019/03/15 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
python 同时运行多个程序的实例
2019/01/07 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
军训的自我鉴定
2013/12/10 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
六查六看六改心得体会
2014/10/14 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
公务员年度考核评语
2014/12/31 职场文书
优秀大学生自荐信
2015/03/26 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL