PHP mysqli_fetch_fields MySQLi 函数

  • 定义和用法

    mysqli_fetch_fields - 返回表示结果集中字段的对象数组
  • 版本支持

    PHP4 PHP5 PHP7
    不支持 支持 支持
  • 语法

    mysqli_fetch_fields ( mysqli_result $result )
    
    该函数与mysqli_fetch_field()函数具有相同的用途,但有一个区别,即不是将每个字段一次返回一个对象,而是将列作为对象数组返回。
  • 参数

    参数 必需的 描述
    result mysqli_query()mysqli_store_result()mysqli_use_result() 返回的结果集标识。
  • 返回值

    返回包含字段定义信息的对象数组;如果没有可用的字段信息,则返回FALSE。
    • name 列名
    • orgname 原始列名(如果指定了别名)
    • table 此字段所属的表的名称(如果未计算)
    • orgtable 原始表名(如果已指定别名)
    • max_length 结果集字段的最大宽度。
    • length 表定义中指定的字段宽度(以字节为单位)。 请注意,根据您使用的字符集,此数字(字节)可能与表定义值(字符)不同。 例如,字符集utf8每个字符有3个字节,因此varchar(10)对于utf8(10 * 3)将返回30的长度,而对于latin1(10 * 1)将返回10的长度。
    • charsetnr 字段的字符集编号(id)。
    • flags 一个整数,表示该字段的位标志。
    • type 用于此字段的数据类型
    • decimals 使用的小数位数(用于整数字段)
  • 示例

    <?php
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");
    
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    foreach (array('latin1', 'utf8') as $charset) {
    
        // Set character set, to show its impact on some values (e.g., length in bytes)
        mysqli_set_charset($link, $charset);
    
        $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";
    
        echo "======================\n";
        echo "Character Set: $charset\n";
        echo "======================\n";
    
        if ($result = mysqli_query($link, $query)) {
    
            /* Get field information for all columns */
            $finfo = mysqli_fetch_fields($result);
    
            foreach ($finfo as $val) {
                printf("Name:      %s\n",   $val->name);
                printf("Table:     %s\n",   $val->table);
                printf("Max. Len:  %d\n",   $val->max_length);
                printf("Length:    %d\n",   $val->length);
                printf("charsetnr: %d\n",   $val->charsetnr);
                printf("Flags:     %d\n",   $val->flags);
                printf("Type:      %d\n\n", $val->type);
            }
            mysqli_free_result($result);
        }
    }
    
    mysqli_close($link);
    
  • 相关函数

    mysqli_num_fields() - 获取结果中的字段数
    mysqli_fetch_fields_direct() - 获取单个字段的元数据
    mysqli_fetch_field() - 返回表示结果集中字段的对象数组