返回顶部
首页 > 资讯 > 数据库 >PHP怎么使用MySQLi中的MySQLI_result对象操作
  • 553
分享到

PHP怎么使用MySQLi中的MySQLI_result对象操作

2023-06-20 13:06:19 553人浏览 八月长安
摘要

这篇文章主要为大家展示了“PHP怎么使用MySQLi中的MysqlI_result对象操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php怎么使用mysqli中的MysqlI_result对

这篇文章主要为大家展示了“PHP怎么使用MySQLi中的MysqlI_result对象操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php怎么使用mysqli中的MysqlI_result对象操作”这篇文章吧。

在之前我们就已经接触过MYSQLI_result相关的内容。它其实就是一个查询的结果集。不过在PDO中,一般通过query()或者PDOStatement对象进行查询后就返回结果。但在MySQLi中,会把查询到的结果也放入一个对象中,这就是MySQLI_result对象。

MySQLI_result 对象属性

首先,我们要通过一段查询来获得一个 MySQLI_result 对象。

$stmt = $mysqli->prepare("select * from zyblog_test_user where username = 'kkk'");$stmt->execute(); // 执行语句$result = $stmt->get_result();var_dump($result);// object(mysqli_result)#3 (5) {//     ["current_field"]=>//     int(0)//     ["field_count"]=>//     int(4)//     ["lengths"]=>//     NULL//     ["num_rows"]=>//     int(7)//     ["type"]=>//     int(0)//   }

如果使用的 MYSQLI_STMT 的话,直接在 execute() 方法执行查询语句之后,就可以通过 get_result() 方法获得一个 MySQLI_result 对象。

在这个对象中,我们可以看到有 current_field 当前字段 、 field_count 字段数量 、 lengths 字段长度 、 num_rows 行数 、 type 这些属性内容。不少同学会发现,current_field 和 lengths 好像并没有什么实际的内容,其实这两个属性是需要在特定操作下才会显示内容的,比如 lengths 是要在 fetch() 结果集之后才会有信息的。

$result->fetch_array();var_dump($result);// ……// ……// ["lengths"]=>//   array(4) {//     [0]=>//     int(0)//     [1]=>//     int(3)//     [2]=>//     int(3)//     [3]=>//     int(2)//   }// ……// ……

而 current_field 属性的内容我们将在下面遍历查看字段信息的时候再展示它的内容。

查询结果集获取

MySQLI_result 对象的可见属性中,我们只能看到上面的那些信息。对于我们的业务开发来说其实用处不大,除了 num_rows 可以用来根据行数判断查询是否有结果之外,更重要的是我们要获取到结果集中的数据信息,这时就需要使用其它的函数来进行数据的获取了。

获取全部结果集

var_dump($result->fetch_all());// array(7) {//     [0]=>//     array(4) {//       [0]=>//       int(42)//       [1]=>//       string(3) "kkk"//       [2]=>//       string(3) "666"//       [3]=>//       string(2) "k6"//     }//     ……//     ……$result->data_seek(0);var_dump($result->fetch_all(MYSQLI_ASSOC));// array(7) {//     [0]=>//     array(4) {//       ["id"]=>//       int(42)//       ["username"]=>//       string(3) "kkk"//       ["passWord"]=>//       string(3) "666"//       ["salt"]=>//       string(2) "k6"//     }//     ……//     ……

fetch_all() 方法就是用来获取全部的数据集内的数据,并以数组的形式返回,它可以指定返回的格式,默认情况下是 MYSQLI_NUM 这种数组下标的形式,和 PDO 类似,我们直接指定为 MySQLI_ASSOC 就可以返回键名形式的数据内容。

data_seek() 方法是移动结果集的下标。当我们获取或者使用后面要介绍的方法循环遍历完成一次结果集之后,再次遍历的话它的游标已经处于最后一位的,这样是无法获取数据的。在上面的代码中,我们就是将游标两次返回到 0 下标的位置,也就是最初始的位置,这样我们就可以重复地操作这一个结果集了。

获取普通结果集

如果要一行一行数据的获取,我们就可以使用各种形式的结果集数据获取方式。

var_dump($result->fetch_array());// array(8) {//     [0]=>//     int(42)//     ["id"]=>//     int(42)//     [1]=>//     string(3) "kkk"//     ["username"]=>//     string(3) "kkk"//     [2]=>//     string(3) "666"//     ["password"]=>//     string(3) "666"//     [3]=>//     string(2) "k6"//     ["salt"]=>//     string(2) "k6"//   }var_dump($result->fetch_array(MYSQLI_ASSOC));// array(4) {//     ["id"]=>//     int(43)//     ["username"]=>//     string(3) "kkk"//     ["password"]=>//     string(3) "666"//     ["salt"]=>//     string(2) "k6"//   }

使用 fetch_array() 就是获取下一行的结果数据并以数组的形式返回,同样它也可以指定返回结果集的格式,和 fetch_all() 是类似的,只不过它是只获取下一行而不是全部的数据集,而且它的参数默认是返回的 MYSQLI_BOTH ,也就是数字下标和键名下标同时返回结果。

另外还有一个 fetch_assoc() 方法,直接就是返回 MYSQLI_ASSOC 格式的数据,这个方法不需要任何参数,它可以看成是 fetch_array(MYSQLI_ASSOC) 这种使用方式的一个封装。

var_dump($result->fetch_assoc());// array(4) {//     ["id"]=>//     int(42)//     ["username"]=>//     string(3) "kkk"//     ["password"]=>//     string(3) "666"//     ["salt"]=>//     string(2) "k6"//   }

而另外一个方法 fetch_row() ,则可以看成是和 fetch_array(MYSQLI_NUM) 相似的一个方法。它其实就是默认指定为 MySQLI_NUM 的结构返回方式。

var_dump($result->fetch_row());// array(4) {//     [0]=>//     int(43)//     [1]=>//     string(3) "kkk"//     [2]=>//     string(3) "666"//     [3]=>//     string(2) "k6"//   }

获取对象结果集

获取对象结果集其实和 PDO 中的相关功能也是类似的,它就是将结果直接放到一个类中,并实例化返回一个对象。

ar_dump($result->fetch_object());// object(stdClass)#4 (4) {//     ["id"]=>//     int(42)//     ["username"]=>//     string(3) "kkk"//     ["password"]=>//     string(3) "666"//     ["salt"]=>//     string(2) "k6"//   }

在这里我们没有指定类,所以它使用的是 stdClass 来返回的对象结构。我们也可以指定一个类,并且可以为这个类的构造函数传递参数,这一点也和 PDO 中的相关功能一样。

class User{    public function __construct()    {        print_r(func_get_args());    }}var_dump($result->fetch_object('User', [1, 2, 3]));// Array// (//     [0] => 1//     [1] => 2//     [2] => 3// )// object(User)#4 (4) {//     ["id"]=>//     int(42)//     ["username"]=>//     string(3) "kkk"//     ["password"]=>//     string(3) "666"//     ["salt"]=>//     string(2) "k6"//   }

查询结果集字段信息获取

接下来我们再看看 MySQLI_result 对象中的字段相关信息的获取。我们可以直接获取到当前查询的结果集中的所有字段信息。

while ($finfo = $result->fetch_field()) {    var_dump($result->current_field);    var_dump($finfo);}// int(1)// object(stdClass)#4 (13) {//     ["name"]=>//     string(2) "id"//     ["orgname"]=>//     string(2) "id"//     ["table"]=>//     string(16) "zyblog_test_user"//     ["orgtable"]=>//     string(16) "zyblog_test_user"//     ["def"]=>//     string(0) ""//     ["db"]=>//     string(9) "blog_test"//     ["catalog"]=>//     string(3) "def"//     ["max_length"]=>//     int(0)//     ["length"]=>//     int(11)//     ["charsetnr"]=>//     int(63)//     ["flags"]=>//     int(49667)//     ["type"]=>//     int(3)//     ["decimals"]=>//     int(0)//   }// int(2)//   object(stdClass)#5 (13) {//     ["name"]=>//     string(8) "username"//     ["orgname"]=>//     string(8) "username"//     ……//     ……

在这段代码中,我们查看了 MySQLI_result 对象的 current_field 属性信息,可以看出,它指出的就是当前位于哪个字段的下标。

字段的信息非常详细,这些属性的键名也很直观,这里就不作详细的说明了。

$result->field_seek(1);while ($finfo = $result->fetch_field()) {    var_dump($finfo);}// object(stdClass)#5 (13) {//     ["name"]=>//     string(8) "username"//     ["orgname"]=>//     string(8) "username"

我们同样也可以通过 field_seek() 方法来移动字段遍历的游标。在这里我们将游标移动到 1 ,就会从第二个 username 字段开始遍历。

var_dump($result->fetch_fields());// array(4) {//     [0]=>//     object(stdClass)#5 (13) {//       ["name"]=>//       string(2) "id"//       ["orgname"]=>//       string(2) "id"//       ["table"]=>//       string(16) "zyblog_test_user"//       ["orgtable"]=>//       string(16) "zyblog_test_user"//       ["def"]=>//       string(0) ""//       ["db"]=>//       string(9) "blog_test"//       ["catalog"]=>//       string(3) "def"//       ["max_length"]=>//       int(0)//       ["length"]=>//       int(11)//       ["charsetnr"]=>//       int(63)//       ["flags"]=>//       int(49667)//       ["type"]=>//       int(3)//       ["decimals"]=>//       int(0)//     }//     [1]=>//     object(stdClass)#4 (13) {//       ["name"]=>//       string(8) "username"var_dump($result->fetch_field_direct(2));// object(stdClass)#7 (13) {//     ["name"]=>//     string(8) "password"//     ["orgname"]=>//     string(8) "password"//     ["table"]=>//     string(16) "zyblog_test_user"//     ["orgtable"]=>//     string(16) "zyblog_test_user"//     ["def"]=>//     string(0) ""//     ["db"]=>//     string(9) "blog_test"//     ["catalog"]=>//     string(3) "def"//     ["max_length"]=>//     int(3)//     ["length"]=>//     int(765)//     ["charsetnr"]=>//     int(33)//     ["flags"]=>//     int(0)//     ["type"]=>//     int(253)//     ["decimals"]=>//     int(0)//   }

fetch_fields() 方法和 fetch_all() 是类似的,它就是获取全部的字段信息。而 fetch_field_direct() 则是根据参数来获取指定下标的字段信息。

以上是“PHP怎么使用MySQLi中的MySQLI_result对象操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: PHP怎么使用MySQLi中的MySQLI_result对象操作

本文链接: https://lsjlt.com/news/296818.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP怎么使用MySQLi中的MySQLI_result对象操作
    这篇文章主要为大家展示了“PHP怎么使用MySQLi中的MySQLI_result对象操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP怎么使用MySQLi中的MySQLI_result对...
    99+
    2023-06-20
  • PHP中如何使用Git来操作对象数组?
    Git是一款非常流行的版本控制工具,它可以帮助我们更好地管理代码版本和协作开发。在PHP开发中,我们经常需要操作对象数组,那么如何使用Git来操作对象数组呢?本文将为您详细介绍。 一、Git的基本使用 Git的基本使用包括创建仓库、提交代...
    99+
    2023-09-23
    git 对象 数组
  • vuex中怎么操作state对象
    vuex中怎么操作state对象,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vuex是什么?VueX 是一个专门为 Vue.js 应用设...
    99+
    2024-04-02
  • Java中怎么操作Office对象
    本篇内容主要讲解“Java中怎么操作Office对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中怎么操作Office对象”吧!Java中使用JCOM操作Office对象[@more@...
    99+
    2023-06-03
  • PHP箭头符号在对象操作中的使用技巧
    PHP箭头符号在对象操作中的使用技巧 PHP是一种广泛应用于Web开发的编程语言,其中的对象操作是开发过程中必不可少的一部分。在PHP中,箭头符号(->)用于访问对象的属性和方法...
    99+
    2024-04-02
  • PHP中如何使用对象数组来操作文件?
    PHP是一门广泛应用于Web开发的编程语言,它具有简单易学、开发效率高的优点。在PHP中,使用对象数组来操作文件是一种非常常见的方式。本文将介绍PHP中如何使用对象数组来操作文件。 一、打开文件 在PHP中,我们可以使用fopen()函数来...
    99+
    2023-08-26
    对象 数组 文件
  • JavaScript怎么操作DOM对象
    这篇文章主要为大家展示了“JavaScript怎么操作DOM对象”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript怎么操作DOM对象”这篇文章吧。一、DOM基础DOM(Docum...
    99+
    2023-06-29
  • ASP中如何使用API对象操作Git?
    Git是一款目前非常流行的分布式版本控制系统,它可以帮助开发者协同工作、管理代码版本、记录更改历史等。在ASP应用程序中,如果需要使用Git来管理代码版本,我们可以使用Git API对象来进行操作。 Git API对象是一个COM对象,它...
    99+
    2023-11-03
    api 对象 git
  • 如何在 PHP 中使用 JavaScript 对象来操作 Apache 服务器?
    PHP 和 JavaScript 是两种不同的编程语言,但它们可以在一起使用,为我们的应用程序提供更多的功能和灵活性。在本文中,我们将介绍如何在 PHP 中使用 JavaScript 对象来操作 Apache 服务器。 Apache 服务器...
    99+
    2023-08-19
    javascript 对象 apache
  • PHP中面向对象的数据库操作类
        在PHP的面向过程中,我们可以通过封装函数来实现对数据库的操作,那么在面向过程中,我们同样可以通过类来实现对数据库的操作,整个过程和面向过程的思路大体差不多,...
    99+
    2024-04-02
  • PHP中如何实现对象的并发操作?
    在PHP中,对象的并发操作是一个非常重要的主题,因为它可以提高应用程序的性能和响应速度。在本文中,我们将讨论如何在PHP中实现对象的并发操作。 首先,让我们先了解一下PHP中的并发操作是什么意思。简单来说,并发操作是指多个线程或进程同时执行...
    99+
    2023-10-22
    对象 并发 shell
  • 如何使用ajax操作JavaScript对象
    这篇文章主要讲解了“如何使用ajax操作JavaScript对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用ajax操作JavaScript对象”...
    99+
    2024-04-02
  • 如何使用 GO SHELL 操作对象?
    Go Shell是一个非常强大的工具,可以让开发者在命令行中快速编写和运行Go代码。在这篇文章中,我将向大家介绍如何使用Go Shell来操作对象,并提供一些演示代码。 首先,我们需要了解一些基本概念。在Go中,对象是指在代码中创建的实体...
    99+
    2023-09-05
    自然语言处理 shell 对象
  • PHP中object对象有什么作用
    本篇文章给大家分享的是有关PHP中object对象有什么作用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP object对象初始化:要初始化一个对象,用 new 语句将对...
    99+
    2023-06-17
  • PHP学习笔记:如何使用shell来操作对象?
    在PHP中,对象是一种非常常见的数据类型。我们经常需要对这些对象进行各种操作,比如创建、修改、删除等等。而使用shell来操作对象,则是一种非常方便和高效的方式。在本文中,我们将介绍如何使用shell来操作PHP对象。 创建对象 在P...
    99+
    2023-07-31
    学习笔记 对象 shell
  • Spring Cloud Feign 使用对象参数的操作
    目录概述@RequestBody@SpringQueryMapQueryMapEncoder解决方案概述 Spring Cloud Feign 用于微服务的封装,通过接口代理的实现方...
    99+
    2024-04-02
  • 如何在 PHP 中使用 Shell 命令来操作数组和对象?
    PHP 是一种非常流行的服务器端编程语言,可以被广泛应用于 Web 开发和命令行工具开发。在 PHP 中,我们经常会使用 Shell 命令来执行一些操作,例如创建文件、复制文件、修改文件权限等等。不过,你知道吗?PHP 中也可以使用 She...
    99+
    2023-08-22
    数组 对象 shell
  • php如何用PDO操作大数据对象
    目录什么是大数据对象直接操作大数据对象会怎么样?正确的姿势总结什么是大数据对象 “大”通常意味着“大约 4kb 或以上”,尽管某些数据库在数据达到“大”之前可以轻松地处理多达 32...
    99+
    2024-04-02
  • 如何使用PHP对象数组来处理文件操作?
    PHP是一种非常流行的编程语言,广泛应用于Web开发。在PHP中,对象数组是一种非常有用的数据结构,可以用来存储和处理文件操作。在本文中,我们将介绍如何使用PHP对象数组来处理文件操作。 一、创建对象数组 在PHP中,创建对象数组非常简单。...
    99+
    2023-08-26
    对象 数组 文件
  • JavaScript中操作对象的方法是怎样的
    本篇文章给大家分享的是有关JavaScript中操作对象的方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Object.create...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作