曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4075|回复: 0
打印 上一主题 下一主题

[数据库] mysql_fetch_field() -- 获取字段信息

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-6-3 18:22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
mysql_fetch_field() 函数可以用来获取字段信息,定义如下:
[Plain Text] 纯文本查看 复制代码
object mysql_fetch_field ( resource $result [, int $field_offset ] )

第 1 个参数 $result 是资源标识符。

第 2 个参数 $field_offset 是个可选参数,表示字段的序号, 0 表示第一个字段,1 表示第二个字段,依此类推,如果省略,那么表示取得当前的字段。

函数的返回值为 object 类型,包含的属性如下表所示:
属性说明
name字段名
table字段所属的数据表名
max_length字段内容实际存放的最大长度,不是数据库内设置的数据长度
not_null字段内容是否允许为NULL,如果返回1,表示不允许为 NULL
primary_key字段是否为主键,如果返回1,表示为主键
unique_key字段是否为唯一键(unique key),如果返回1,表示唯一键
multiple_key字段是否为多重键(multiple key), 如果返回1,表示为多重键
numeric字段类型是否为数值类型,如果返回1,那么为数值类型
blob字段类型是否为 BLOB 类型,如果返回 1,表示为 BLOB 类型
type
字段类型
unsigned
字段是否为无符号(unsigned),如果返回1,表示为无符号
zerofill
字段是否会自动补0(zerofill),如果返回1,表示会自动补0

如果要获取第 2 个字段的信息,那么可以写成:
[Plain Text] 纯文本查看 复制代码
$meta = mysql_fetch_fiedl($result, 1);


如果要取得第 2 个字段信息并显示其字段名及数据类型,可以如下写法:
[Plain Text] 纯文本查看 复制代码
$meta = mysql_fetch_field($result, 1);
echo "字段名: $meta->name";
echo "数据类型:$meta->type";


测试代码:
[PHP] 纯文本查看 复制代码
<?php
        require_once("dbfuncs.php");

        $link = create_connection();

        $sql = "SELECT * FROM `pw_hack` WHERE `hk_value` = 10";

        $result = execute_sql("pw87", $sql, $link);

        echo "<table width='400' border='1'> <tr align='center'>";
        echo "<th>字段名</th><th>数据类型</th><th>最大长度</th></tr>";

        $i = 0;

        while ($i < mysql_num_fields($result)) {
                $meta = mysql_fetch_field($result, $i);
                echo "<tr>";
                echo "<td>$meta->name</td>";
                echo "<td>$meta->type</td>";
                echo "<td>$meta->max_length</td>";
                echo "</tr>";
                $i++;
        }
        echo "</table>";

        mysql_close($link);
?>

运行输出:


BLOB 类型介绍
BLOB 是 Binary Large Object 的缩写,即二进制大对象,是一个可以存储大量二进制数据的容器。MySQL 有 4 种 BLOB 类型:
类型大小(字节)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob最大 4G

这四种类型除了允许的最大值不同外,没有其他区别;实际使用中根据需要存入的数据大小定义不同的BLOB类型。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 01:26 , Processed in 0.071703 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表