在PHP处理对数据库查询返回的结果集,即mysqli_query()函数返回的结果集,我们可以把它处理为数组形式以便于处理。

我们一般会用下面四个函数:

1、array mysqli_fetch_array ( resource result [, int result_type] )

              #返回结果集的一行作为数组,两种数组索引都行
2、mixed mysqli_fetch_object ( resource result )

              #返回结果集的一行作为对象 <?php echo $myrow-date; ?>
3、mixed mysqli_fetch_row ( resource result )

              #返回结果集的一行作为枚举数组,只能使用数字索引
4、mixed mysqli_fetch_assoc ( resource result )

              #返回结果集的一行作为关联数组,只能是关联数组的索引形式

一般我们会使用这样的形式来在网页中显示结果:

但是有时候我们对于他们都是返回的是数组,但是可能并不太理解他们是怎样返回的,下面以mysqli_fetch_row 为例进行分析,其它几个也是类似的。

分析:上面的四个转换结果集中数据为对象、数组的函数,它们都是返回的结果集中的一行作为对象
像游标一样,如果使用循环,它会自动指向下一行然后又返回一个数组,最后没有了,就返回false。
由于false是最后的退出条件,所以要while($myrow=mysqli_fetch_row($result)){}这样,把变量和函数的
赋值语句作为while的条件语句,如果先在外面定义了$myrow=mysqli_fetch_row($result);,
然后while($myrow){}就会陷入死循环。

这几个函数实际上像是一个游标,先将结果集中的第一行作为数组,然后游标向后移动一个
又得到一个数组,依次类推到最后没有了,就直接返回一个false,所以我们对于行的遍历
最好用while循环,对单个数组中的数据的遍历,最好用for循环,这个数组的长度用count($myrow)获取

另外,$myrow[索引]的形式可以得到数组中的某一个元素。对于对象,可以用$myrow-数据库中字段名。

备注:这里的索引要么是数字索引,要么是关联数组的索引,对于关联数组的索引其实就是对应着
数据库中的字段名称,必须一致才行。

这些函数返回的数组的结构可以根据下面的图来理解。

mysqli_fetch_row()函数返回结果的理解的更多相关文章

  1. JS中函数参数和函数返回值的理解

    函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...

  2. Python关于函数作为返回值的理解(3分钟就看完了)

    话不多说,直接看例子,上代码: def line_conf(): def line(x): return 2 * x + 1 return line #return a function object ...

  3. Entity Framework 6 Recipes 2nd Edition(11-1)译 -> 从“模型定义”函数返回一个标量值

    第11章函数 函数提供了一个有力代码复用机制, 并且让你的代码保持简洁和易懂. 它们同样也是EF运行时能利用的数据库层代码.函数有几类: Rowset Functions, 聚合函数, Ranking ...

  4. 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)

    1.函数指针声明的格式及简单的使用 (1)格式:(返回值)(*函数指针名)(参数列表)    例如:声明一个无参数无返回值的函数指针(void)(*p)(void). (2)将函数指针指向某个无参数无 ...

  5. 关于C/C++函数指针声明的理解

    [前言] 由于最近对函数指针的理解比较模糊,所有又重新学习了一把关于函数指针的知识,参考了很多书籍和网上的文章.现在本人进行一下分享和总结.本文的其实只是整理和总结别人现有的文章,作为备用参考文档. ...

  6. 考察printf函数返回值

    最近偶然间见了这样一道题:  #include<stdio.h> int main() { ; printf("%d\n",printf("%d", ...

  7. 对于c语言存储分配程序(malloc函数)实现的理解

    内容主要出自<The C Programming Language>一书,不得不说这是一本程序员必读的书,我大二读了前面几章就扔到一边了,直到最近才又拿起来再读,找不到言语来形容我现在后悔 ...

  8. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  9. JS异步函数 返回值

    1.  js 异步的几种情况 : 1.1 异步操作由浏览器内核的 webcore 来执行: onclick 由浏览器内核的 DOM Binding 模块来处理,当事件触发的时候,回调函数会立即添加到任 ...

随机推荐

  1. POI导出Excel时下拉列表值超过255的问题(String literals in formulas can't be bigger than 255 characters ASCII)

    //创建Excel工作薄对象 Workbook workbook = new HSSFWorkbook(); //生成一个表格 设置:页签 Sheet sheet = workbook.createS ...

  2. 新增秒杀功能、优惠券、支付宝、Docker,newbee-mall升级版开源啦!

    最近是非常非常非常忙,一方面是公司的事情比较多,另外⼀点是最近在准备诉讼材料.⾄于诉讼的是谁,⼤家可以去看我之前写的几篇文章,所以本来这周是不打算更新文章的.不过,昨天慕课网的法务联系我的律师了,终于 ...

  3. Centos7拓展磁盘(逻辑增加)

    目录 第一步 第二步 第三步 以107.4G的Centos操作系统拓展20G磁盘空间,并将此20G磁盘空间分别分配给/home为例. 第一步 首先查看操作系统分区状况和磁盘占用情况.发现磁盘sda空间 ...

  4. string大小写转换

    string大小写转换 源码: 1 #include <string> 2 #include <iostream> 3 #include <algorithm> 4 ...

  5. python实现机器学习笔记

    #课程链接 https://www.imooc.com/video/20165 一.机器学习介绍以及环境部署 1.机器学习介绍及其原理 1)什么是人工智能 人工智能就其本质而言,是机器对人的思维信息过 ...

  6. Ajax(内含json)认识

    Ajax 认识 一.概念 1.Ajax 即"Asynchronous Javascript And XML"(英[eɪˈsɪŋkrənəs]异步 JavaScript 和 XML) ...

  7. csp-s模拟测试49(9.22)养花(分块/主席树)·折射(神仙DP)·画作

    最近有点头晕........... T1 养花 考场我没想到正解,后来打的主席树,对于每个摸数查找1-(k-1),k-(2k-1)...的最大值,事实上还是很容易被卡的但是没有数据好像还比较友善, 对 ...

  8. 前台使用Vue

    前台搭建遇到问题 ----前台访问量大 未采用vue 单页面SAP 的方式构建 使用多HTML构建页面 项目构建 vue 2.6 https://cn.vuejs.org/ elementUI htt ...

  9. leetcode5697. 检查二进制字符串字段

    5697. 检查二进制字符串字段给你一个二进制字符串 s ,该字符串 不含前导零 . 如果 s 最多包含 一个由连续的 '1' 组成的字段 ,返回 true​​​ .否则,返回 false . 示例 ...

  10. SqlServer数据库分区

    在最近的项目中,在尽可能优化了sql语句后,上层仍要求对数据库进行优化,因为考虑到系统上线后数据量会非常庞大,而且这些个表的数据都有明显的时间划分,于是就引入了数据库分区的概念.摘用百度百科的定义,数 ...