如何导出数据库的数据词典
在项目的开发时,为了深入了解项目的数据情况,通常都会使用到数据字典,方便对某个字段进行详细的了解,加快开发的速度以及防止不必要的错误发生,下面介绍下数据字典的生成。
第一,可以使用第三方的工具如sqlyog
第二,就是自己进行编写一些代码进行导出,下面是一些PHP代码,连接数据库对某个数据库的数据词典导出
<?php
header('content-type:text/html;charset=utf-8');
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','pwd');
define('DB_NAME','dbname');
define('DB_PORT',3306);
define('DB_CHAR','utf8');
define('APPNAME','');
$conn=mysql_connect(DB_HOST.':'.DB_PORT,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);
mysql_query('set names ' . DB_CHAR);
$sql="SHOW TABLE STATUS FROM " . DB_NAME;
$result=mysql_query($sql);
$array=array();
while($rows=mysql_fetch_assoc($result)){
$array[]=$rows;
}
// table count
$tab_count = count($array);
echo '
'.APPNAME.'--数据字典
'.APPNAME.'--数据字典
(注:共'.$tab_count.'张表,按ctrl+F查找关键字)'."\n";
for($i=0;$i<$tab_count;$i++){
echo '- '."\n";
echo '
- '; echo ($i+1).'、表名:[' . $array[$i]['Name'] . '] 注释:' . $array[$i]['Comment']; echo ' '."\n"; //查询数据库字段信息 $tab_name = $array[$i]['Name']; $sql_tab='show full fields from `' . $array[$i]['Name'].'`'; $tab_result=mysql_query($sql_tab); $tab_array=array(); while($r=mysql_fetch_assoc($tab_result)){ $tab_array[]=$r; } //show keys $keys_result=mysql_query("show keys from `".$array[$i]['Name'].'`',$conn); $arr_keys=mysql_fetch_array($keys_result); echo '
'; echo '
'; for($j=0;$j字段 类型 为空 额外 默认 整理 备注 '."\n"; echo ' ' . $tab_array[$j]['Field'] . ' '."\n"; echo '' . $tab_array[$j]['Type'] . ' '."\n"; echo '' . ($key_value!=''?$key_value:$tab_array[$j]['Null']) . ' '."\n"; echo '' . $tab_array[$j]['Extra'] . ' '."\n"; echo '' . $tab_array[$j]['Default'] . ' '."\n"; echo '' . $tab_array[$j]['Collation'] . ' '."\n"; echo '' . ($key_value!=''?$key_name:$tab_array[$j]['Comment']) . ' '."\n"; echo ' '."\n"; } echo ' '."\n";
echo '
注意:如果遇到乱码的问题,有四种可能:
第一、创建数据库时是否是utf8;
第二、创建数据表时编码是否是utf8;
第三、meta标签里面的设置
;
第四、文件在保存时的编码格式是否为utf8。