上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.8 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。
注:该函数返回的字段名是区分大小写的。
【函数语法】
object mysql_fetch_field(resource result[,int field_offset])
其中,参数result是执行函数mysql_query()返回的结果集;可选参数field_offset是指定的字段序号数,如果没有设置该参数的值,则下一个尚未被mysql_fetch_field()取得的字段将被提取。该函数的返回值为对象型。
【示例程序】下面使用本例函数从结果集中获得了指定字段的信息。代码如下:
<?php //打开一个非持久的MySQL服务器的连接 $link = mysql_connect("localhost", "root", "123456")or die("connection error: ".mysql_error()); mysql_select_db("project",$link);//通过打开的连接选择数据库 $sql = "select * from language"; //书写SQL语句,查询数据表中的字段 $result = mysql_query($sql,$link); //执行一条SQL语句 while ($fieldinfo = mysql_fetch_field($result)){ //从结果集中得到指定字段的信息 echo "Name:".$fieldinfo->name."<br />";//得到字段名 echo "Table:".$fieldinfo->table."<br />"; //该字段所在的表名 echo "Max length:".$fieldinfo->max_length."<br />"; //该字段的最大长度 echo "Not NULL:".$fieldinfo->not_null."<br />"; //如果该字段不能为空 echo "Primary Key:".$fieldinfo->primary_key."<br />"; //该字段是否为主键 echo "Unique Key:".$fieldinfo->unique_key."<br />"; //该字段是否为唯一键 echo "Mutliple Key:".$fieldinfo->multiple_key."<br/>"; //该字段不是唯一键值 echo "Numeric:".$fieldinfo->numeric."<br />"; //该字段是否为数值型 echo "BLOB:".$fieldinfo->blob."<br />"; //该字段是否为BLOB echo "Type:".$fieldinfo->type."<br />"; //该字段的类型 echo "Unsigned:".$fieldinfo->unsigned."<br />"; //如果该字段是无序号数 echo "Zerofilled:".$fieldinfo->zerofill."<br /><br/>"; //如果该字段是zero-filled } mysql_close($link); //关闭打开的连接 ?>
以上代码的运行结果如图1.20所示。
图1.20 运行结果
上述代码中,成功地连接了指定的MySQL服务器,执行了SQL语句来查询数据表中的信息,得到了一个结果集$result。然后使用while循环和函数mysql_fetch_field()得到了字段id和name的相关信息。