10-1字段指针的基本操作–PHP实战开发教程

10-1字段指针的基本操作–PHP实战开发教程

粮飘拼刮谱络排吨啡龄经橡变


表结构:表中有5个字段

10-1字段指针的基本操作–PHP实战开发教程第1张


新建mysqli_field_result.php

10-1字段指针的基本操作–PHP实战开发教程第2张

代码:

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($result=mysqli_query($db,'select * from staff limit 5'))
{
    while($row=mysqli_fetch_assoc($result))
    {
        print_r($row);echo "<hr>";
    }
}

执行:

10-1字段指针的基本操作–PHP实战开发教程第3张


查询结果集中的字段数:

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select name,sex,salary from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
echo "表中的记录数量是:".mysqli_num_rows($res)."<br>";
echo "表中每个记录的字段数量是:".mysqli_num_fields($res)."<br>";

执行,mysqli_num_fields($res)查询的是结果集中的字段数,并不是原始表中字段数(原始表中的字段为5)

sql语句:’select name,sex,salary from staff limit 7’只查询了三个字段,所以mysqli_num_fields($res)值为3

10-1字段指针的基本操作–PHP实战开发教程第4张


当前字段在字段结果集中的位置

字段集的意思:值得是由staff_id,name,sex,age,salary组成的集合

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select sex,salary from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
echo "表中的记录数量是:".mysqli_num_rows($res)."<br>";
echo "表中每个记录的字段数量是:".mysqli_num_fields($res)."<br>";
//另一种写法
echo "表中每个记录的字段数量是:".mysqli_field_count($db)."<br>";//注意参数必须是$db
echo "当前字段在字段结果集中的位置:".mysqli_field_tell($res)."<br>";

执行:

10-1字段指针的基本操作–PHP实战开发教程第5张


查看字段的详细信息:

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select * from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
echo "结果集中字段的详细信息:<br>";
echo "<pre/>";
print_r(mysqli_fetch_field($res));

执行,当前看见的是staff_id字段的详细信息

10-1字段指针的基本操作–PHP实战开发教程第6张


查看结果集中其他字段的详细信息,指针下移,注意指针偏移量不能超出查询的字段数,如查询2个字段,指针偏移量最大只能为1(数组下标为1,是第二个字段),否则会提示无效的偏移量

查看sex字段的详细信息:

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select * from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
echo "结果集中字段的详细信息:<br>";
echo "<pre/>";

mysqli_field_seek($res,2);//指针移动到第三个字段即:sex字段
print_r(mysqli_fetch_field($res));

执行:

10-1字段指针的基本操作–PHP实战开发教程第7张


循环输出结果集中所有字段的详细信息:

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select * from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
//echo "表中的记录数量是:".mysqli_num_rows($res)."<br>";
//echo "表中每个记录的字段数量是:".mysqli_num_fields($res)."<br>";
////另一种写法
//echo "表中每个记录的字段数量是:".mysqli_field_count($db)."<br>";//注意参数必须是$db
//echo "当前字段在字段结果集中的位置:".mysqli_field_tell($res)."<br>";
echo "结果集中字段的详细信息:<br>";
echo "<pre/>";
for($i=0;$i<mysqli_num_fields($res);$i++)
{
    mysqli_field_seek($res,$i);
    print_r(mysqli_fetch_field($res));
}

执行:

10-1字段指针的基本操作–PHP实战开发教程第8张


使用mysqli_fetch_fields($res)函数获取所有结果集中字段的基本信息

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select * from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";

echo "结果集中字段的详细信息:<br>";
echo "<pre/>";

//一次性获取所有字段的基本信息,用对象表示
print_r(mysqli_fetch_fields($res));

执行:

10-1字段指针的基本操作–PHP实战开发教程第9张


获取某个字段的详细信息

获取sex字段的详细信息

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select * from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
echo "结果集中字段的详细信息:<br>";
echo "<pre/>";
mysqli_field_seek($res,2);
$field_info=mysqli_fetch_field($res);
echo "第三个字段的名字是:".$field_info->name;

执行:

10-1字段指针的基本操作–PHP实战开发教程第10张


使用:mysqli_fetch_field_direct($res,4)直接获取某个字段

<?php
//结果集中的字段和指针操作

//连接数据库
require "mysqli_connect.php";

if($res=mysqli_query($db,'select * from staff limit 7'))
{
    while($row=mysqli_fetch_assoc($res))
    {
        print_r($row);echo "<hr>";
    }
}

echo "<hr color='red'>";
echo "结果集中字段的详细信息:<br>";
echo "<pre/>";
$field_info=mysqli_fetch_field_direct($res,4);
echo "第五个字段的名字是:".$field_info->name;

执行:

10-1字段指针的基本操作–PHP实战开发教程第11张


获取字段数量和字段基本信息的意义:

生成表格时,可以根据结果集的字段数量,动态生成表头数量。更加字段名生成表格的表头内容


浚肚辈渺诲悉缅叙陌戮纶算显