首页 > 编程 > PHP > 正文

PHP实现获取并生成数据库字典的方法

2020-03-22 18:10:54
字体:
来源:转载
供稿:网友
本文实例讲述了PHP实现获取并生成数据库字典的方法。分享给大家供大家参考,具体如下: * 生成mysql数据字典header("Content-type:text/html;charset=utf-8");// 配置数据库$database = array();$database['DB_HOST'] = 'localhost';$database['DB_NAME'] = 'test';$database['DB_USER'] = 'root';$database['DB_PWD'] = '';$mysql_conn = @mysql_connect("{$database['DB_HOST']}", "{$database['DB_USER']}", "{$database['DB_PWD']}") or die("Mysql connect is error.");mysql_select_db($database['DB_NAME'], $mysql_conn);$result = mysql_query('show tables', $mysql_conn);mysql_query("set names utf8");// 取得所有表名while ($row = mysql_fetch_array($result)) $tables[]['TABLE_NAME'] = $row[0];// 循环取得所有表的备注及表中列消息foreach($tables as $k = $v) $sql = 'SELECT * FROM '; $sql .= 'information_schema.TABLES '; $sql .= 'WHERE '; $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database['DB_NAME']}'"; $table_result = mysql_query($sql, $mysql_conn); while ($t = mysql_fetch_array($table_result)) $tables[$k]['TABLE_COMMENT'] = $t['TABLE_COMMENT']; $sql = 'SELECT * FROM '; $sql .= 'information_schema.COLUMNS '; $sql .= 'WHERE '; $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database['DB_NAME']}'"; $fields = array(); $field_result = mysql_query($sql, $mysql_conn); while ($t = mysql_fetch_array($field_result)) $fields[] = $t; $tables[$k]['COLUMN'] = $fields;mysql_close($mysql_conn);$html = '';// 循环所有表//print_r($tables);foreach($tables as $k = $v) $html .= ' table border="1" cellspacing="0" cellpadding="0" align="center" $html .= ' caption 表名:' . $v['TABLE_NAME'] . ' ' . $v['TABLE_COMMENT'] . ' /caption $html .= ' tbody tr th 字段名 /th th 数据类型 /th th 默认值 /th th 允许非空 /th th 自动递增 /th th 备注 /th /tr $html .= ''; foreach($v['COLUMN'] AS $f) $html .= ' td ' . $f['COLUMN_NAME'] . ' /td $html .= ' td ' . $f['COLUMN_TYPE'] . ' /td $html .= ' td ' . $f['COLUMN_DEFAULT'] . ' /td $html .= ' td ' . $f['IS_NULLABLE'] . ' /td $html .= ' td ' . ($f['EXTRA'] == 'auto_increment' '是':' ') . ' /td $html .= ' td ' . $f['COLUMN_COMMENT'] . ' /td $html .= ' /tr $html .= ' /tbody /table /p /* 生成word *///header ( "Content-type:application/vnd.ms-word" );//header ( "Content-Disposition:attachment;filename={$database['DB_NAME']}数据字典.doc" );/* 生成excel*///header ( "Content-type:application/vnd.ms-excel" );//header ( "Content-Disposition:attachment;filename={$database['DB_NAME']}数据字典.xls" );// 输出echo ' html meta charset="utf-8" title 自动生成数据字典 /title style body,td,th {font-family:"宋体"; font-size:12px;} table,h1,p{width:960px;margin:0px auto;} table{border-collapse:collapse;border:1px solid #CCC;background:#efefef;} table caption{text-align:left; background-color:#fff; line-height:2em; font-size:14px; font-weight:bold; } table th{text-align:left; font-weight:bold;height:26px; line-height:26px; font-size:12px; border:1px solid #CCC;padding-left:5px;} table td{height:20px; font-size:12px; border:1px solid #CCC;background-color:#fff;padding-left:5px;} .c1{ width: 150px;} .c2{ width: 150px;} .c3{ width: 80px;} .c4{ width: 100px;} .c5{ width: 100px;} .c6{ width: 300px;} /style body echo ' h1 '.$database['DB_NAME'].'数据字典 /h1 echo ' p 生成时间:' . date('Y-m-d H:i:s') . ' /p echo $html;echo ' p 总共:' . count($tables) . '个数据表 /p echo ' /body /html
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》希望本文所述对大家PHP程序设计有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表