mysql数据库数据字典生成代码

 4617

这篇教程教大家做一个自动生成数据库数据字典HTML文件的代码,有时候在开发系统制作系统说明的时候很有用。不多说了,直接上代码:

mysql字典生成代码

  1. <?php
  2. // -h host  -u user  -p password -P port -c charset -d dbname 
  3. $param = getopt('h:u:p:P:c:d:');
  4. $host = $param['h'] ?? '127.0.0.1';
  5. $port = $param['P'] ?? 3306;
  6. $user = $param['u'] ?? 'root';
  7. $pass = $param['p'] ?? '123456';
  8. $charset = $param['c'] ?? 'utf8';
  9. $dbname = $param['d'] ?? '';
  10. $dsn = "mysql:dbname={$dbname};host={$host};port={$port}";
  11. try {
  12.     $pdo = new PDO($dsn, $user, $pass, [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"]);
  13. } catch (PDOException $e) {
  14.     echo 'Connection failed:' . $e->getMessage();
  15. }
  16. //获取数据库中所有表信息
  17. $sql = "SHOW TABLE STATUS FROM {$dbname}";
  18. $result = $pdo->query($sql, PDO::FETCH_ASSOC);
  19. $tables = $result->fetchAll();
  20. $table_count = count($tables);
  21. $html =  '<!DOCTYPE html>
  22. <html>
  23. <head>
  24.     <meta charset="UTF-8">
  25.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  26.     <title>Document</title>
  27. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  28. <title>' . $dbname . '--数据字典</title>
  29. <style type="text/css">
  30.     table caption, table th, table td {
  31.         padding: 0.1em 0.5em 0.1em 0.5em;
  32.         margin: 0.1em;
  33.         vertical-align: top;
  34.     }
  35.     th {
  36.         font-weight: bold;
  37.         color: black;
  38.         background: #D3DCE3;
  39.     }
  40.     table tr.odd th, .odd {
  41.         background: #E5E5E5;
  42.     }
  43.     table tr.even th, .even {
  44.         background: #f3f3f3;
  45.     }
  46.     .db_table{
  47.         border-top:1px solid #333;
  48.     }
  49.     .title{font-weight:bold;}
  50. </style>
  51. </head>
  52. <body>
  53. <div style="text-align:center;background:#D3DCE3;font-size:19px;">
  54.     <b>' . $dbname . '--数据字典</b>
  55. </div>
  56. <div style="background:#f3f3f3;text-align:center;">(注:共' . $table_count . '张表,按ctrl+F查找关键字)</div>' . "\n";
  57. for ($i = 0; $i < $table_count; $i++) {
  58.     $html .= '<ul type="square">' . "\n";
  59.     $html .= '  <li>';
  60.     $html .= ($i + 1) . '、表名:[' . $tables[$i]['Name'] . ']      注释:' . $tables[$i]['Comment'];
  61.     $html .= '</li>' . "\n";
  62.     //查询数据库表字段信息
  63.     $tab_name = $tables[$i]['Name'];
  64.     $sql_tab = 'SHOW FULL FIELDS FROM `' . $tables[$i]['Name'] . '`';
  65.     $result = $pdo->query($sql_tab, PDO::FETCH_ASSOC);
  66.     $field_info = $result->fetchAll();
  67.     $html .= '<li style="list-style: none outside none;"><table border="0" >';
  68.     $html .= '<tr>
  69.         <th style="width:110px">字段</th>
  70.         <th>类型</th>
  71.         <th>为空</th>
  72.         <th>额外</th>
  73.         <th>默认</th>
  74.         <th style="width:95px">字符集</th>
  75.         <th>是否主键</th>
  76.         <th>备注</th></tr>';
  77.     for ($j = 0; $j < count($field_info); $j++) {
  78.         $html .= '        <tr class="' . ($j % 2 == 0 ? "odd" : "even") . '">' . "\n";
  79.         $html .= '          <td>' . $field_info[$j]['Field'] . '</td>' . "\n";
  80.         $html .= '          <td>' . $field_info[$j]['Type'] . '</td>' . "\n";
  81.         $html .= '          <td>' . $field_info[$j]['Null'] . '</td>' . "\n";
  82.         $html .= '          <td>' . $field_info[$j]['Extra'] . '</td>' . "\n";
  83.         $html .= '          <td>' . $field_info[$j]['Default'] . '</td>' . "\n";
  84.         $html .= '          <td>' . $field_info[$j]['Collation'] . '</td>' . "\n";
  85.         $html .= '          <td>' . $field_info[$j]['Key'] . '</td>' . "\n";
  86.         $html .= '          <td>' . $field_info[$j]['Comment']. '</td>' . "\n";
  87.         $html .= '        </tr>' . "\n";
  88.     }
  89.     $html .= '  </table></li>' . "\n";
  90.     $html .= '</ul>' . "\n";
  91. }
  92. $html .= '</body>' . "\n";
  93. $html .= '</html>' . "\n";
  94. file_put_contents($dbname .'.html', $html);


使用方法

  1. php dict.php -127.0.0.1 -u root -123456 -3306 -d blog_service


参数说明

  1. -h mysql服务器地址 -u mysql用户名 -p mysql密码 -P mysql端口 -d mysql数据库名

参数都有默认值,-d参数必传 最简单的用法:

  1. php dict.php -d blog_service

执行命令后生成一个以数据库名命名的html文件


本文网址:https://www.zztuku.com/detail-9788.html
站长图库 - mysql数据库数据字典生成代码
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐