先给出本实例中使用的表的信息:

\"php获取mysql表字段名称和字段信息的三种方法\"

 

使用desc获取表字段信息

php代码如下:

<?php 
   mysql_connect(\"localhost\",\"root\",\"\");
   mysql_select_db(\"test\");
   $query = \"desc student\";
   $result = mysql_query($query);
   /* http://www.manongjc.com/article/1225.html */
   while($row=mysql_fetch_assoc($result)){
		print_r($row);
   }
?>

运行结果:

Array
(
    [Field] => student_id
    [Type] => int(4)
    [Null] => NO
    [Key] => PRI
    [Default] => 
    [Extra] => auto_increment
)
Array
(
    [Field] => student_name
    [Type] => varchar(50)
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
)
Array
(
    [Field] => class_id
    [Type] => int(4)
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
)
Array
(
    [Field] => total_score
    [Type] => int(4)
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
)

 

使用SHOW FULL FIELDS获取表字段信息

php代码如下:

<?php 
   mysql_connect(\"localhost\",\"root\",\"\");
   mysql_select_db(\"test\");
   $query = \"SHOW FULL COLUMNS FROM student\";
   $result = mysql_query($query);
   while($row=mysql_fetch_assoc($result)){
		print_r($row);
   }
?>

运行结果:

Array
(
    [Field] => student_id
    [Type] => int(4)
    [Collation] => 
    [Null] => NO
    [Key] => PRI
    [Default] => 
    [Extra] => auto_increment
    [Privileges] => select,insert,update,references
    [Comment] => 
)
Array
(
    [Field] => student_name
    [Type] => varchar(50)
    [Collation] => latin1_swedish_ci
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
    [Privileges] => select,insert,update,references
    [Comment] => 
)
Array
(
    [Field] => class_id
    [Type] => int(4)
    [Collation] => 
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
    [Privileges] => select,insert,update,references
    [Comment] => 
)
Array
(
    [Field] => total_score
    [Type] => int(4)
    [Collation] => 
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
    [Privileges] => select,insert,update,references
    [Comment] => 
)

 

使用mysql_fetch_field方法获取表字段信息

php代码如下:

<?php
   mysql_connect(\"localhost\",\"root\",\"\");
   mysql_select_db(\"test\");
   $query = \"SELECT * FROM student LIMIT 1\";
   $result = mysql_query($query);
   $fields = mysql_num_fields($result);
   for($count=0;$count<$fields;$count++)
   {
      $field = mysql_fetch_field($result,$count);
	  print_r($field);
   }
?>

运行结果如下:

stdClass  
(
    [name] => student_id
    [table] => student
    [def] => 
    [max_length] => 1
    [not_null] => 1
    [primary_key] => 1
    [multiple_key] => 0
    [unique_key] => 0
    [numeric] => 1
    [blob] => 0
    [type] => int
    [unsigned] => 0
    [zerofill] => 0
)
stdClass  
(
    [name] => student_name
    [table] => student
    [def] => 
    [max_length] => 5
    [not_null] => 1
    [primary_key] => 0
    [multiple_key] => 0
    [unique_key] => 0
    [numeric] => 0
    [blob] => 0
    [type] => string
    [unsigned] => 0
    [zerofill] => 0
)
stdClass  
(
    [name] => class_id
    [table] => student
    [def] => 
    [max_length] => 1
    [not_null] => 1
    [primary_key] => 0
    [multiple_key] => 0
    [unique_key] => 0
    [numeric] => 1
    [blob] => 0
    [type] => int
    [unsigned] => 0
    [zerofill] => 0
)
stdClass  
(
    [name] => total_score
    [table] => student
    [def] => 
    [max_length] => 3
    [not_null] => 1
    [primary_key] => 0
    [multiple_key] => 0
    [unique_key] => 0
    [numeric] => 1
    [blob] => 0
    [type] => int
    [unsigned] => 0
    [zerofill] => 0
)
收藏 打印