在上一篇文章中讲到了要如何执行一条sql语句,也就是调用MysqLi_query()
函数,通过该函数我们已经能够查询到数据库的信息了,但是在我们的日常开发中还是需要对这一个结果进行处理才能够得到我们想要的信息。那接下来我们就看一下PHP中处理结果常用的几个函数吧。
MysqLi_fetch_row() 函数可以从结果集中取得一行,并以索引数组的形式返回,其语法格式如下:
MysqLi_result::fetch_row()
这是面向对象的写法,面向过程的写法如下:
MysqLi_fetch_row(MysqLi_result $result)
其中需要注意的是: MysqLi_result
和 $result
表示为使用 MysqLi_query() 函数获取的结果集。
接下来我们通过示例来看一下MysqLi_fetch_row() 函数的用法,示例如下:
<?PHP $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $MysqL = new MysqLi($host, $username, $password, $dbname); if($MysqL -> connect_errno){ die('数据库连接失败:'.$MysqL->connect_errno); }else{ $sql = 'select name,sex,age from user'; // sql 语句 $result = $MysqL -> query($sql); // 执行上面的 sql 语句 $data = $result -> fetch_row(); $MysqL -> close(); } echo '<pre>'; print_r($data); ?>
输出结果:
上述示例中,通过MysqLi_fetch_row() 函数成功查询到了数据库中的其中一行数据,并且是以索引数组的方式返回的。那接下来我们看一下不同的返回形式。
MysqLi_fetch_assoc() 函数可以从结果集中取得一行,并以关联数组的形式返回,该函数的语法格式如下:
MysqLi_result::fetch_assoc()
这是其面向对象的语法格式写法,下面是起面向过程语法格式的写法:
MysqLi_fetch_assoc(MysqLi_result $result)
其中需要注意的是: MysqLi_result
和 $result
表示为使用 MysqLi_query() 函数获取的结果集。
接下来我们通过示例来看一下MysqLi_fetch_assoc() 函数的使用,示例如下:
<?PHP $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @MysqLi_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // sql 语句 $result = MysqLi_query($link, $sql); // 执行 sql 语句,并返回结果 $data = MysqLi_fetch_assoc($result); // 从结果集中获取一条数据 MysqLi_close($link); }else{ echo '数据库连接失败!'; } echo '<pre>'; print_r($data); ?>
输出结果:
由上述示例,我们通过MysqLi_fetch_assoc() 函数成功的获取了数据库中的一行信息并且通过关联数组的方式返回。我们也可以通过函数来控住返回数据的形式,让它可以是索引数组也可以是关联数组或者两者兼顾的形式,这时候我们就要用到MysqLi_fetch_array() 函数。
MysqLi_fetch_array() 函数可以从结果集中取得一行,并根据参数以关联数组、索引数组或二者兼有的形式返回,它的语法格式如下:
MysqLi_result::fetch_array([int $resulttype = MysqLI_BOTH])
这是面向对象的语法方式,下面是面向过程的语法方式:
MysqLi_fetch_array(MysqLi_result $result[, int $resulttype = MysqLI_BOTH])
其中需要注意的是:
接下来我们通过示例来看一下MysqLi_fetch_array() 函数的用法,示例如下:
<?PHP $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @MysqLi_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // sql 语句 $result = MysqLi_query($link, $sql); // 执行 sql 语句,并返回结果 $data = MysqLi_fetch_array($result, MysqLI_ASSOC);// 从结果集中获取所有数据 MysqLi_close($link); }else{ echo '数据库连接失败!'; } echo '<pre>'; print_r($data); ?>
输出结果:
上述示例中,我们选择了通过关联数组的形式来返回数据,我们通过MysqLi_fetch_array() 函数可以选择返回值的不同类型。
MysqLi_fetch_all() 函数可以获取结果集中的所有数据,并根据参数以关联数组、索引数组或二者兼有的形式返回,它的语法格式如下:
MysqLi_result::fetch_all([int $resulttype = MysqLI_NUM])
这是面向对象的写法,下面是面向过程的写法:
MysqLi_fetch_all(MysqLi_result $result [, int $resulttype = MysqLI_NUM])
其中需要注意的是:与MysqLi_fetch_array() 函数的语法相同
接下来通过示例来看一下MysqLi_fetch_all() 函数的使用,示例如下:
<?PHP $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $MysqL = new MysqLi($host, $username, $password, $dbname); if($MysqL -> connect_errno){ die('数据库连接失败:'.$MysqL->connect_errno); }else{ $sql = 'select name,sex,age from user'; // sql 语句 $result = $MysqL -> query($sql); // 执行上面的 sql 语句 $data = $result -> fetch_all(MysqLI_ASSOC); $MysqL -> close(); } echo '<pre>'; print_r($data); ?>
输出结果:
上述示例中,便是通过MysqLi_fetch_all() 函数选择以关联数组的形式返回所有的数据。
大家如果感兴趣的话,可以点击《PHP教程》进行更多关于PHP知识的学习。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。