学校网站源码免费,效果图制作设计,品牌设计包括哪些,网站建设需要注册42类吗PHP 针对mysql 自动生成数据字典
确保php 可以正常使用mysqli 扩展
这里还需要注意 数据库密码 如果密码中有特殊字符 如#xff1a;
首先#xff0c;我们需要了解MySQL中的特殊字符包括哪些。MySQL中的特殊字符主要包括以下几类#xff1a; 1. 单引号#xff08;
首先我们需要了解MySQL中的特殊字符包括哪些。MySQL中的特殊字符主要包括以下几类 1. 单引号
2. 双引号
3. 反斜杠\
4. 美元符号$
5. 反引号
6. 百分号%
7. 下划线_ 如果密码为123456$Aki
那么密码应该写成
$database[DB_PWD] 123456\$Aki; 完整代码如下
?php
/*** 生成mysql数据字典*/
header(Content-type:text/html;charsetutf-8);
// 配置数据库
$database array();
$database[DB_HOST] 127.0.0.1;
$database[DB_NAME] demo;
$database[DB_USER] root;
$database[DB_PWD] 123456;$conn mysqli_connect({$database[DB_HOST]}, {$database[DB_USER]}, {$database[DB_PWD]}, $database[DB_NAME]);
if ($conn-connect_error) {die(连接失败: . $conn-connect_error);
}
mysqli_query($conn,SET NAMES utf8);
$result $conn-query(show tables, $mysql_conn);
if ($result-num_rows 0) {// 取得所有表名while ($row $result-fetch_array()) {$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 $conn-query($sql);while ($t $table_result-fetch_array()){$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 $conn-query($sql);while ($t $field_result-fetch_array()){$fields[] $t;}$tables[$k][COLUMN] $fields;
}
$conn-close();
$html ;
// 循环所有表
//print_r($tables);//列出所有表的表信息列表表名 表名称
$html . table border1 cellspacing0 cellpadding0 aligncenter;
$html . tbodytrth序号/thth表名/thth功能说明/th/tr;foreach($tables as $k $v)
{$sort $k1;$html . td classc1 . $sort . /td;$html . td classc2 . $v[TABLE_NAME] . /td;$html . td classc3 . $v[TABLE_COMMENT] ./td;$html . /tr;
}
$html . /tbody/table/p;$html . br /br /br /;//循环每个表的具体信息
foreach($tables as $k $v)
{$html . table border1 cellspacing0 cellpadding0 aligncenter;$html . caption表名 . $v[TABLE_NAME] . . $v[TABLE_COMMENT] . /caption;$html . tbodytrth字段名/thth数据类型/thth默认值/thth允许非空/thth自动递增/thth备注/th/tr;$html . ;foreach($v[COLUMN] AS $f){$html . td classc1 . $f[COLUMN_NAME] . /td;$html . td classc2 . $f[COLUMN_TYPE] . /td;$html . td classc3 . $f[COLUMN_DEFAULT] . /td;$html . td classc4 . ($f[IS_NULLABLE] YES ? 是:否) . /td;$html . td classc5 . ($f[EXTRA] auto_increment?是: ) . /td;$html . td classc6 . $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 htmlmeta charsetutf-8title自动生成数据字典/titlestylebody,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;}/stylebody;
echo h1 styletext-align:center;.$database[DB_NAME].数据字典/h1;
echo p styletext-align:center;margin:20px auto;生成时间 . date(Y-m-d H:i:s,time()) . /p;
echo $html;
echo p styletext-align:left;margin:20px auto;总共 . count($tables) . 个数据表/p;
echo /body/html;
?运行效果如图 方法二其实也差不多 页面样式略有变化 ?php
/*** 自动生成mysql数据字典*/
header(Content-type: text/html; charsetutf-8);
//配置数据库
$dbserver 127.0.0.1;
$port 3306; //端口
$dbusername root; // 数据库连接账号
$dbpassword 123456; // 数据库连接密码
$database demo; // 数据库名
// 连接数据库
$mysql_conn mysqli_connect($dbserver, $dbusername, $dbpassword, $database,$port) or die(Mysql connect is error.);
mysqli_query($mysql_conn, SET NAMES utf8);
$table_result mysqli_query($mysql_conn, show tables);
$no_show_table array(); // 不需要显示的表
$no_show_field array(); // 不需要显示的字段
//取得所有的表名
$tables array();
while ($row mysqli_fetch_array($table_result)) {if (!in_array($row[0], $no_show_table)) {$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};$table_result mysqli_query($mysql_conn, $sql);while ($t mysqli_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};$fields array();$field_result mysqli_query($mysql_conn, $sql);while ($t mysqli_fetch_array($field_result)) {$fields[] $t;}$tables[$k][COLUMN] $fields;
}
mysqli_close($mysql_conn);
$html ;
//循环所有表
foreach ($tables as $k $v) {if (!in_array($v[TABLE_NAME], $no_show_table)) {$html . h3 . ($k 1) . 、 . $v[TABLE_COMMENT] . ( . $v[TABLE_NAME] . )/h3;$html . table border1 cellspacing0 cellpadding0 width100%;$html . tbody;$html . tr;$html . th字段名/th;$html . th数据类型/th;$html . th默认值/th;$html . th允许非空/th;$html . th自动递增/th;$html . th备注/th;$html . /tr;foreach ($v[COLUMN] as $f) {if (!in_array($f[COLUMN_NAME], $no_show_field)) {$html . tr;$html . td classc1 . $f[COLUMN_NAME] . /td;$html . td classc2 . $f[COLUMN_TYPE] . /td;$html . td classc3 . $f[COLUMN_DEFAULT] . /td;$html . td classc4 . $f[IS_NULLABLE] . /td;$html . td classc5 . ($f[EXTRA] auto_increment ? 是 : nbsp;) . /td;$html . td classc6 . $f[COLUMN_COMMENT] . /td;$html . /tr;}}$html . /tbody;$html . /table;}
}
?
!doctype html
html langen
headmeta charsetUTF-8title数据字典/titlemeta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0, user-scalablenometa namerenderer contentwebkit|ie-comp|ie-standmeta http-equivX-UA-Compatible contentIEEdgestylebody, td, th{font-family: 微软雅黑;font-size: 14px;}.warp{margin: auto;width: 900px;}.warp h3{margin: 0px;padding: 0px;line-height: 30px;margin-top: 10px;}table{border-collapse: collapse;border: 1px solid #CCC;background: #efefef;}table th{text-align: left;font-weight: bold;height: 26px;line-height: 26px;font-size: 14px;text-align: center;border: 1px solid #CCC; padding: 5px;}table td{height: 20px;font-size: 14px;border: 1px solid #CCC;background-color: #fff;padding:5px;}.c1{width: 120px;}.c2{width: 120px;}.c3{width: 150px;}.c4{width: 80px;text-align:center;}.c5{width: 80px;text-align:center;}.c6{width: 270px;}/style
/head
bodydiv classwarph1 styletext-align:center;数据字典自动生成/h1?php echo $html; ?/div
/body
/html
效果如下图