php生成mysql的数据字典

把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"; 

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

(0)

相关推荐

  • 获取MSSQL数据字典的SQL语句

    复制代码 代码如下: CREATE VIEW dbo.vw_db_dictionary AS SELECT TOP 100 PERCENT dbo.sysobjects.name AS table_name, dbo.sysproperties.[value] AS table_desc, dbo.syscolumns.name AS field, properties.[value] AS field_desc, dbo.systypes.name AS field_type, dbo.sys

  • linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache  在如下页面下载apache的for Linux 的源码包   http://www.apache.org/dist/httpd/;  存至/home/xx目录,xx是自建文件夹,我建了一个wj的文件夹. 命令列表:   cd /home/wj  tar -zxvf httpd-2.0.54.tar.gz mv httpd-2.0.54 apache  cd apache  ./configure --prefix=/usr/local/apache2 --enable-mod

  • CentOS+Nginx+PHP+MySQL详细配置(图解)

    一.安装MySQL 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/b

  • js实现的类似于asp数据字典的数据类型代码实例

    首先声明一个数组: 复制代码 代码如下: var dictNew=new Array; var key; var value; for (var i = 0; i <50; i++) { //获取要添加到数据字典的键值对   key= jQuery("#costCodeIdId"+i).val(); value = num2zero(jQuery("#valueId"+i).val()); //检查该key值是否在数据字典中存在,如果不存在,直接把key值和v

  • mssql2005,2008导出数据字典实现方法

    在你要导出数据字典的数据空中右键,新建查询,执行如下代码即可 复制代码 代码如下: SELECT (case when a.colorder=1 then d.name else '' end)表名,d.xtype as 表类型, a.colorder 字段序号, a.name 字段名, (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识, (case when (SELECT count(

  • windows下apache+php+mysql 环境配置方法

    一 准备 1 下载apache http://httpd.apache.org/download.cgi#apache24 httpd-2.2.22-win32-x86-openssl-0.9.8t.msi openssl表示带有openssl模块,利用openssl可给Apache配置SSL安全链接 2 下载php http://windows.php.net/downloads/releases/archives/ php-5.3.5-Win32-VC6-x86.zip 下载vc6版本 VC

  • 讲解Oracle数据库中的数据字典及相关SQL查询用法

    Oracle数据字典概述    数据库是数据的集合,数据库维护和管理这用户的数据,那么这些用户数据表都存在哪里,用户的信息是怎样的,存储这些用户的数据的路径在哪里,这些信息不属于用户的信息,却是数据库维护和管理用户数据的核心,这些信息就是数据库的数据字典来维护的,数据库的数据字典就汇集了这些数据库运行所需要的基础信息叻.每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是

  • Oracle的数据字典技术简析

    正在看的ORACLE教程是:Oracle的数据字典技术简析.数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息. Oracle中的数据字典有静态和动态之分.静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的.以下

  • PHP读取MySQL数据代码

    新建view.php文件,其内容为:  复制代码 代码如下: <?php   $link=mysql_connect("localhost","root","之前的管理员密码");   if(!$link) echo "没有连接成功!";   else echo "连接成功!";   ?> 这样,我们便连接上了MySQL数据库,接下来,就是数据读取部分的代码,根据我的MySQL数据源表结构的介绍

  • CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正

随机推荐