分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

实用的在线预览数据字典的工具(php编写)

发布时间:2023-09-06 02:21责任编辑:彭小芳关键词:暂无标签
前言

无论是刚接手新项目,或者是维护老项目,有一个方便的数据字典可用是最棒哒!
本文是我为了方便使用数据字典而写的代码。
代码无版权,随便使用。

拷贝代码后,只需修改数据库名,主机,用户名,密码,开箱即用。
同时,代码还可以保留自定义的数据字典部分,方便实用。
妈妈再也不用担心我没有好用的数据字典工具了!

源码
全部代码如下,只有一个文件,放在可访问的web目录下即可,附件里也有源码:
tool.php
Php代码
  1. <?php
  2. classTool
  3. {
  4. //这是库名,需修改。第1处修改
  5. constdbname=‘mydb‘;
  6. private$mysqli;
  7. //$db是数据库连接,需修改使用。第2处修改。
  8. ////这里设置主机名,用户名,密码
  9. publicfunction__construct()
  10. {
  11. $this->mysqli=newmysqli(‘127.0.0.1‘,‘root‘,‘‘,self::dbname);
  12. $sql="setnamesutf8";
  13. $this->mysqli->query($sql);
  14. }
  15. /**
  16. *数据字典生成器
  17. *
  18. *可以从数据库中直接读出数据字典并直接呈现,只需配置好数据库连接。
  19. *还可以修改数据库中的内容(或添加上原来数据字典里没有的内容)。
  20. *
  21. *代码可以随意使用和修改。
  22. *
  23. *20171223
  24. *
  25. *@authoryyy
  26. */
  27. publicfunctiondb_dict()
  28. {
  29. $db_name=self::dbname;//这是数据库名
  30. //先查出表的元数据,和字段的元数据。
  31. $sql="
  32. selecttable_name,table_commentfrominformation_schema.tables
  33. wheretable_schema=‘{$db_name}‘
  34. orderbytable_nameasc
  35. ";
  36. $table_arr=$this->mysqli->query($sql)->fetch_all(MYSQLI_ASSOC);
  37. //var_dump($table_arr);return;
  38. $sql="
  39. SELECT
  40. T.TABLE_NAMEAS‘table_name‘,
  41. T.ENGINEAS‘engine‘,
  42. C.COLUMN_NAMEAS‘column_name‘,
  43. C.COLUMN_TYPEAS‘column_type‘,
  44. C.COLUMN_COMMENTAS‘column_comment‘
  45. FROM
  46. information_schema.COLUMNSC
  47. INNERJOINinformation_schema.TABLESTONC.TABLE_SCHEMA=T.TABLE_SCHEMA
  48. ANDC.TABLE_NAME=T.TABLE_NAME
  49. WHERE
  50. T.TABLE_SCHEMA=‘{$db_name}‘
  51. ";
  52. $column_arr=$this->mysqli->query($sql)->fetch_all(MYSQLI_ASSOC);
  53. $column_arr=$this->my_comment($column_arr);
  54. //构造表的索引
  55. $table_list_str=‘‘;
  56. foreach($table_arras$v){
  57. $table_list_str.=‘<li><ahref="#‘.$v[‘table_name‘].‘">‘.
  58. $v[‘table_name‘]."({$v[‘table_comment‘]})".‘</a></li>‘."\n";
  59. }
  60. //构造数据字典的内容
  61. $table_str=‘‘;
  62. foreach($table_arras$v){
  63. $table_name=$v[‘table_name‘];
  64. $table_comment=$v[‘table_comment‘];
  65. $table_str.=<<<html
  66. [url=#header][/url]
  67. <pclass=‘table_jiange‘><aname=‘{$table_name}‘>&nbsp</a>
  68. <tablewidth="100%"border="0"cellspacing="0"cellpadding="3">
  69. <tr>
  70. <tdwidth="70%"
  71. valign="top">{$table_name}({$table_comment})</td>
  72. <tdwidth="30%"
  73. align="right"
  74. ></td>
  75. <tr>
  76. </table>
  77. <tablewidth="100%"cellspacing="0"cellapdding="2">
  78. <tr>
  79. <tdalign="center"width=‘15%‘valign="top">字段</td>
  80. <tdalign="center"width=‘15%‘valign="top">类型</td>
  81. <tdalign="center"width=‘70%‘valign="top">注释</td>
  82. </tr>
  83. html;
  84. foreach($column_arras$vv){
  85. if($vv[‘table_name‘]==$table_name){
  86. $table_str.=<<<html
  87. <tr>
  88. <tdwidth=‘15%‘>
  89. <tdwidth=‘15%‘><p>{$vv[‘column_type‘]}</td>
  90. <tdwidth=‘70%‘>{$vv[‘column_comment‘]}</td>
  91. </tr>
  92. html;
  93. }
  94. }
  95. $table_str.="</table>\n\n";
  96. }
  97. //开始构造整个数据字典的html页面
  98. $html=<<<html
  99. <html>
  100. <head>
  101. <title>{$db_name}数据字典</title>
  102. <metahttp-equiv="Content-Type"content="text/html;charset=utf8">
  103. <styletype="text/css">
  104. <!--
  105. .toptext{font-family:verdana;color:#000000;font-size:20px;font-weight:600;width:550;}
  106. .normal{font-family:Verdana,Arial,sans-serif;font-size:16px;font-weight:normal;color:#000000}
  107. .normal_ul{font-family:Verdana,Arial,sans-serif;
  108. font-size:12px;font-weight:normal;color:#000000}
  109. .fieldheader{font-family:verdana;color:#000000;font-size:16px;font-weight:600;width:550;}
  110. .fieldcolumn{font-family:verdana;color:#000000;font-size:16px;font-weight:600;width:550;}
  111. .header{#ECE9D8;}
  112. .headtext{font-family:verdana;color:#000000;font-size:20px;font-weight:600;}
  113. BR.page{page-break-after:always}
  114. //-->
  115. </style>
  116. <style>
  117. a:link{text-decoration:none;}
  118. a:visited{text-decoration:none;}
  119. a:active{text-decoration:none;}
  120. body{
  121. padding:20px;
  122. }
  123. #ul2{
  124. margin:0;
  125. padding:0;
  126. }
  127. #ul2li{
  128. display:inline;
  129. float:left;
  130. margin:55px;
  131. padding:0px0px;
  132. width:230px;
  133. border:1px#bbbdashed;
  134. }
  135. #ul2lia{
  136. display:block;
  137. font-size:14px;
  138. color:#000;
  139. padding:10px5px;
  140. font-weight:bolder;
  141. }
  142. #ul2li:hover{
  143. }
  144. #ul2li:hovera{
  145. color:#FFF;
  146. }
  147. #div2{
  148. clear:both;
  149. margin:20px;
  150. }
  151. .table2td{
  152. padding:5px10px;
  153. }
  154. .table2tr:hovertd{
  155. }
  156. .table2tr:hovertdp{
  157. color:#FFF;
  158. }
  159. .table2{border-right:1pxsolid#aaa;border-bottom:1pxsolid#aaa}
  160. .table2td{border-left:1pxsolid#aaa;border-top:1pxsolid#aaa}
  161. .table2tr:nth-child(even){background:#F4F4F4;}
  162. .headtext{
  163. padding:10px;
  164. }
  165. p.pa{
  166. color:blue;
  167. }
  168. .table_jiange{
  169. height:1px;
  170. margin:20px;
  171. padding:0;
  172. }
  173. </style>
  174. </head>
  175. <bodybgcolor=‘#ffffff‘topmargin="0">
  176. <tablewidth="100%"border="0"cellspacing="0"cellpadding="5">
  177. <tr>
  178. <td><palign="center">{$db_name}数据字典</td>
  179. </tr>
  180. </table>
  181. <aname="header">&nbsp</a>
  182. <ulid=‘ul2‘>
  183. {$table_list_str}
  184. </ul>
  185. <div></div>
  186. <brclass=page>
  187. {$table_str}
  188. [url=#header]<p>回到首页[/url]
  189. <h1width="100%">
  190. </body>
  191. </html>
  192. html;
  193. mysqli_close($this->mysqli);
  194. echo$html;
  195. }
  196. /**
  197. *自定义注释,可以完美覆盖表中的注释。
  198. *
  199. 这里的account表,id字段,只是示例,可以替换成你的表名和字段名。
  200. *@returnstring[][]
  201. */
  202. privatefunctionmy_comment_list()
  203. {
  204. $arr=[
  205. [
  206. ‘table_name‘=>‘account‘,
  207. ‘column_name‘=>‘id‘,
  208. ‘column_comment‘=>‘自增主键‘
  209. ],
  210. [
  211. ‘table_name‘=>‘account‘,
  212. ‘column_name‘=>‘cid‘,
  213. ‘column_comment‘=>‘栏目id‘
  214. ],
  215. ];
  216. return$arr;
  217. }
  218. privatefunctionmy_comment($arr)
  219. {
  220. $my_table=$this->my_comment_list();
  221. foreach($arras$k=>&$v){
  222. foreach($my_tableas$my){
  223. if($v[‘table_name‘]==$my[‘table_name‘]&&
  224. $v[‘column_name‘]==$my[‘column_name‘]){
  225. $v[‘column_comment‘]=$my[‘column_comment‘];
  226. }
  227. }
  228. }
  229. return$arr;
  230. }
  231. }
  232. $dict=newTool();
  233. $dict->db_dict();


效果展示:








  • tool.zip(7.3 KB)
  • 下载次数: 2
  • 查看图片附件

实用的在线预览数据字典的工具(php编写)

原文地址:https://www.cnblogs.com/apolloren/p/9937410.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved