直接举例某个数据库中只有两个数据表,一个 test ,一个 xfp_keywords ,获取他们的数据库表结构。
此功能可以用于开发人员快速获取数据表结构通过获取的数据生成各种文件形式,用来快速理解数据表结构和逻辑。
先上图看效果,图下面是实现的代码:
PHP获取上面数据库结构的代码:(php7暂不支持,自己可以换成php支持的数据扩展,如有需要可以联系博主)
<style type="text/css">
table {
border-collapse:collapse;
}
table tr td {
border: 0.5px solid #666666;
padding: 5px 10px;
}
</style>
<?php
header(\'Content-Type: text/html; charset=utf-8\');
$db_host = \'127.0.0.1\';
$db_username = \'db_username\';
$db_password = \'db_password\';
$db_database = \'information_schema\';
$db_name = \'db_name\';
$connection = mysql_connect($db_host, $db_username, $db_password); //连接到数据库
mysql_query("set names \'utf8\'"); //编码转化
if (!$connection) {
die("could not connect to the database:</br>" . mysql_error()); //诊断连接错误
}
$db_selecct = mysql_select_db($db_database); //选择数据库
if (!$db_selecct) {
die("could not to the database</br>" . mysql_error());
}
$sqlTable = "SELECT * FROM `TABLES` WHERE `TABLE_SCHEMA` = \'{$db_name}\'";
$queryTable = mysql_query($sqlTable); //执行查询
$i = 1;
$table = \'<table>\';
while ($rowTable = mysql_fetch_assoc($queryTable)) {
if ($i > 1) {
$table .= \'<tr>\';
$table .= \'<td colspan="4"> </td>\';
$table .= \'</tr>\';
}
$table .= \'<tr>\';
$table .= \'<td>\' . $rowTable[\'TABLE_NAME\'] . \'</td>\';
$table .= \'<td colspan="3">\' . $rowTable[\'TABLE_COMMENT\'] . \'</td>\';
$table .= \'</tr>\';
$table .= \'<tr>\';
$table .= \'<td>字段名称</td>\';
$table .= \'<td>字段类型</td>\';
$table .= \'<td>字段描述</td>\';
$table .= \'<td>备注</td>\';
$table .= \'</tr>\';
$sqlColumn = "SELECT * FROM `COLUMNS` WHERE `TABLE_SCHEMA` = \'{$db_name}\' AND `TABLE_NAME` = \'{$rowTable[\'TABLE_NAME\']}\'"; //构建查询语句
$queryColumn = mysql_query($sqlColumn); //执行查询
while ($rowColumn = mysql_fetch_assoc($queryColumn)) {
$table .= \'<tr>\';
$table .= \'<td>\' . $rowColumn[\'COLUMN_NAME\'] . \'</td>\';
$table .= \'<td>\' . $rowColumn[\'COLUMN_TYPE\'] . \'</td>\';
$table .= \'<td>\' . $rowColumn[\'COLUMN_COMMENT\'] . \'</td>\';
$table .= \'<td> </td>\';
$table .= \'</tr>\';
}
$i++;
}
$table .= \'</table>\';
echo $table;
mysql_close($connection);