Home >Database >Mysql Tutorial >把mysql数据库生成数据字典,直接可用_MySQL

把mysql数据库生成数据字典,直接可用_MySQL

WBOY
WBOYOriginal
2016-06-01 13:28:301144browse

bitsCN.com

把mysql数据库生成数据字典,直接可用

 

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

<?php  header(&#39;content-type:text/html;charset=utf-8&#39;);  define(&#39;DB_HOST&#39;,&#39;localhost&#39;);  define(&#39;DB_USER&#39;,&#39;root&#39;);  define(&#39;DB_PASS&#39;,&#39;pwd&#39;);  define(&#39;DB_NAME&#39;,&#39;dbname&#39;);  define(&#39;DB_PORT&#39;,3306);  define(&#39;DB_CHAR&#39;,&#39;utf8&#39;);  define(&#39;APPNAME&#39;,&#39;&#39;);  $conn=mysql_connect(DB_HOST.&#39;:&#39;.DB_PORT,DB_USER,DB_PASS);  mysql_select_db(DB_NAME);  mysql_query(&#39;set names &#39; . 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 &#39;<!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>&#39;.APPNAME.&#39;--数据字典</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>  <p style="text-align:center;background:#D3DCE3;font-size:19px;">      <b>&#39;.APPNAME.&#39;--数据字典</b>  </p>  <p style="background:#f3f3f3;text-align:center;">(注:共&#39;.$tab_count.&#39;张表,按ctrl+F查找关键字)</p>&#39;."/n";  for($i=0;$i<$tab_count;$i++){  echo &#39;<ul type="square">&#39;."/n";  echo &#39;  <li class="title">&#39;;  echo ($i+1).&#39;、表名:[&#39; . $array[$i][&#39;Name&#39;] . &#39;]      注释:&#39; . $array[$i][&#39;Comment&#39;];  echo &#39;</li>&#39;."/n";  //查询数据库字段信息  $tab_name = $array[$i][&#39;Name&#39;];  $sql_tab=&#39;show full fields from `&#39; . $array[$i][&#39;Name&#39;].&#39;`&#39;;  $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][&#39;Name&#39;].&#39;`&#39;,$conn);  $arr_keys=mysql_fetch_array($keys_result);      echo &#39;<li style="list-style: none outside none;"><table border="0" class="db_table" >&#39;;      echo &#39;<tr class="head">          <th style="width:110px">字段</th>          <th>类型</th>          <th>为空</th>          <th>额外</th>          <th>默认</th>          <th style="width:95px">整理</th>          <th>备注</th></tr>&#39;;      for($j=0;$j<count($tab_array);$j++){          $key_name=$arr_keys[&#39;Key_name&#39;];          if($key_name="PRIMARY"){              $key_name=&#39;主键(&#39;.$key_name.&#39;)&#39;;          }          $key_field=$arr_keys[&#39;Column_name&#39;];          if ( $tab_array[$j][&#39;Field&#39;]==$key_field){              $key_value="PK";          }else{              $key_value="";          }          echo &#39;        <tr class="&#39;.($j%2==0?"odd":"even").&#39;">&#39;."/n";          echo &#39;          <td>&#39; . $tab_array[$j][&#39;Field&#39;] . &#39;</td>&#39;."/n";          echo &#39;          <td>&#39; . $tab_array[$j][&#39;Type&#39;] . &#39;</td>&#39;."/n";          echo &#39;          <td>&#39; . ($key_value!=&#39;&#39;?$key_value:$tab_array[$j][&#39;Null&#39;]) . &#39;</td>&#39;."/n";          echo &#39;          <td>&#39; . $tab_array[$j][&#39;Extra&#39;] . &#39;</td>&#39;."/n";          echo &#39;          <td>&#39; . $tab_array[$j][&#39;Default&#39;] . &#39;</td>&#39;."/n";          echo &#39;          <td>&#39; . $tab_array[$j][&#39;Collation&#39;] . &#39;</td>&#39;."/n";          echo &#39;          <td>&#39; . ($key_value!=&#39;&#39;?$key_name:$tab_array[$j][&#39;Comment&#39;]) . &#39;</td>&#39;."/n";          echo &#39;        </tr>&#39;."/n";      }      echo &#39;  </table></li>&#39;."/n";      echo &#39;</ul>&#39;."/n";    }  echo &#39;</body>&#39;."/n";  echo &#39;</html>&#39;."/n";  

 


bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn