$link = mysql_connect('localhost','root','');
$db = mysql_list_dbs($link);
while($row = mysql_fetch_object($db)){
$db_name = $row->Database;
if($db_name=='mydb'){
echo "<p><b>数据库:".$db_name."</b>"."</p>";
$db_table = mysql_list_tables($db_name);
while($row = mysql_fetch_row($db_table)){
$arr = mysql_query("select * from $row[0]");
$flags=mysql_field_flags($arr,0);
echo "<br><b>".$row[0]."</b><br>";
//":". $flags.
mysql_select_db($db_name);
//方案一
$sql =M("test")->query("SHOW FULL FIELDS FROM $row[0]");
//dump($sql);
echo "字段名称,字段类型,数字域数据,是否为空,主键,默认值,额外,注释</br>";
foreach($sql as $s){
echo $s[Field].',';
echo $s[Type].',';
echo $s[Collation].',';
echo $s[Null].',';
echo $s[Key].',';
//echo 'NULL,';
echo $s["Default"].',';
//默认值取值报错,可能关键字冲突,用另外一个方法取默认值
echo $s[Extra].',';
echo $s[Comment].'</br>';
}
////方案二
//$sql ="SELECT * FROM $row[0]";
// $result = mysql_query($sql);
////echo $result.'**********</br>';
//echo "字段名称,默认值</br>";
// while ($property = mysql_fetch_field($result))
// {
//
// //echo $property->name.",</br>";
// //echo "表名称: " . $property->table . ",";
// // echo "BLOB: " . $property->blob . ",";
//// echo "Zero-filled: " . $property->zerofill . "<br /><br />";
// echo $property->name . ",";
// echo $property->def ."<br /><br />";
// }
//mysql_fetch_field() 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量,则下一个尚未被 mysql_fetch_field() 取得的字段被提取。
//对象的属性为:
//name - 列名
//table - 该列所在的表名
//max_length - 该列最大长度
//not_null - 1,如果该列不能为 NULL
//primary_key - 1,如果该列是 primary key
//unique_key - 1,如果该列是 unique key(表示这个字段存在索引,而且它的值是不可以重复的)
//multiple_key - 1,如果该列是 non-unique key (表示这个字段存在索引,而且它的值是可以重复的)
//numeric - 1,如果该列是 numeric
//blob - 1,如果该列是 BLOB
//type - 该列的类型
//unsigned - 1,如果该列是无符号数
//zerofill - 1,如果该列是 zero-filled
}
}
}
采集信息结果如下:
数据库:mydb
it_ab,1
字段名称,字段类型,数字域数据,是否为空,主键,默认值,额外,注释,枚举,备注,是否搜索
id,int(10),,,PRI,,auto_increment,主键ID
pcid,int(10),,,,,,合同ID
batch,int(10),,,,,,采购项目名称
deliverydate,int(10),,,,,,批次
logistics,varchar(20),utf8_general_ci,,,,,物流承接方
logisticsno,varchar(30),utf8_general_ci,,,,,物理单号
shipdoc,varchar(512),utf8_general_ci,,,,,物流单
container,int(2),,,,,,装箱数量
consigneeunit,varchar(50),utf8_general_ci,,,,,收货单位
consignee,varchar(30),utf8_general_ci,,,,,收货人
remarks,varchar(512),utf8_general_ci,,,,,验收人
username,varchar(20),utf8_general_ci,,,,,备注
inputtime,int(10),,,,,,
inputip,varchar(20),utf8_general_ci,,,,,
it_access,2
字段名称,字段类型,数字域数据,是否为空,主键,默认值,额外,注释,枚举,备注,是否搜索
role_id,smallint(6) unsigned,,,MUL,,,角色ID
g,varchar(20),utf8_general_ci,,,,,项目
m,varchar(20),utf8_general_ci,,,,,模块
a,varchar(20),utf8_general_ci,,,,,方法
本文出自 “yanzi” 博客,谢绝转载!