脑动力:PHP函数速查效率手册
上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的相关信息。