php遍历数据库表和所有表字段-154

$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” 博客,谢绝转载!

你可能感兴趣的:(PHP)