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

时间:2016-07-19
本文章向大家介绍php获取mysql表字段名称和字段信息的三种方法,分别为:mysql_fetch_field方法、desc方法和SHOW FULL FIELDS方法,需要的朋友可以参考一下本文章。

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

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 Object
(
    [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 Object
(
    [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 Object
(
    [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 Object
(
    [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
)