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() - 返回表示结果集中字段的对象数组