result()


该方法执行成功返回一个对象数组,失败则返回一个空数组。 一般情况下,我们使用下面的方法遍历结果,代码就像这样:

$query = $this->db->query("要执行的 SQL");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

本函数的别名是 result_object()。

如果当前所执行的 SQL 可能不会返回记录集,我们可以使用如下方法进行判断:

$query = $this->db->query("要执行的 SQL");

if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->title;
      echo $row->name;
      echo $row->body;
   }
}

你可以传递一个字符串给result()函数,该字符串代表着某个类为每一个result对象进行实例化 (注意:该类必须已经被加载)。

$query = $this->db->query("SELECT * FROM users;");

foreach ($query->result('User') as $row)
{
   echo $row->name; // call attributes
   echo $row->reverse_name(); // or methods defined on the 'User' class
}

result_array()


该方法执行成功时将记录集作为关联数组返回。失败时返回空数组。一般情况下,我们使用下面的方法遍历结果,代码就像这样:

$query = $this->db->query("要执行的 SQL");

foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}


row()

该函数将当前请求的第一行数据作为 object 返回。这里是示例代码:

$query = $this->db->query("要执行的 SQL");

if ($query->num_rows() > 0)
{
   $row = $query->row();

echo $row->title;
   echo $row->name;
   echo $row->body;
}

你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 5 行的数据:

$row = $query->row(4);

如果传入的参数超出行索引,则返回第一行(索引为0)数据

你也可以添加一个字符串参数,它是一个类在row()函数下实例化的名字:

$query = $this->db->query("SELECT * FROM users LIMIT 1;");

$query->row(0, 'User')
echo $row->name; // call attributes
echo $row->reverse_name(); // or methods defined on the 'User' class


row_array()

功能与 row() 一样, 区别在于该函数返回的是一个数组:

$query = $this->db->query("要执行的 SQL");

if ($query->num_rows() > 0)
{
   $row = $query->row_array();

echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}

你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 5 行的数据:

$row = $query->row_array(4);

如果传入的参数超出行索引,则返回第一行(索引为0)数据

除此以外, 我们还可以使用下面的方法通过游标的方式获取记录:

$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()

默认情况下他们将返回一个 object,同时你也可以传递参数 "array" 以便使用 array 的方式获取数据

$row = $query->first_row('array')
$row = $query->last_row('array')
$row = $query->next_row('array')
$row = $query->previous_row('array')

结果集辅助函数


$query->num_rows()

该函数将会返回当前请求的行数。在本例子中, $query 表示当前 SQL 所产生的请求结果对象:

$query = $this->db->query('SELECT * FROM my_table');

echo $query->num_rows();


$query->num_fields()

该函数返回当前请求的字段数(列数):

$query = $this->db->query('SELECT * FROM my_table');

echo $query->num_fields();


$query->free_result()

该函数将会释放当前查询所占用的内存并删除其关联的资源标识。通常来说,PHP 将会脚本执行结束后自动释放内存。如果当前执行的请求将要花很长时间并且占用比较大的资源时,该函数可以在一定程度上降低资源的消耗:

$query = $this->db->query('SELECT title FROM my_table');

foreach ($query->result() as $row)
{
   echo $row->title;
}
$query->free_result(); // $query 将不再可用

$query2 = $this->db->query('SELECT name FROM some_table');

$row = $query2->row();
echo $row->name;
$query2->free_result(); // $query2 将不再可用

转载于:https://www.cnblogs.com/lpshan/p/4527569.html

CI生成查询记录集result(),row(),row_array().....相关推荐

  1. VBA SQL查询-记录集转数组

    目录 1 建立连接和查询 2. Recordset 对象(记录集)转数组 1 建立连接和查询 Sub 查询()Dim Cnn As Object, Rst As Object, i&, j&a ...

  2. 数据库查询记录集转化为树状结构,数组转树状结构

    直接上代码: //数组转化成树状 function array2tree($data){$obj = array();if (is_array($data)){foreach($data as $ke ...

  3. 关于flask入门教程-记录集转jsonify

    Flask 框架里,可以用 jsonify 返回 json 数据,但是为什么不用 Python 自带的 json 模块返回 JSON 数据呢? 其实两者是差不多的,jsonify指明了Content- ...

  4. TP5将查询结果集进行排序 记录一下

    需求:需要查询 account 表中每个账户在 report_date 表中对应关联的其中一个月的 字段 order_num 与 bi_ci_fee 之和的记录 (一条链表查询语句即可成功,由于出了一 ...

  5. 记录集 执行mysql_mysql 多次查询后再执行记录集

    mysql 多次查询后再执行记录集 关注:234  答案:2  mip版 解决时间 2021-01-17 06:32 提问者酒瘾渼亽兒 2021-01-16 12:11 一.概况 一个项目需要远程连接 ...

  6. shell获取hive查询数据结果_在shell中判断hive查询记录数大小

    用途: 根据查询到结果数量来判断,是否需要再执行下个脚本. 1. 查询语句script.q脚本如下: select count(1) as count from test; 2. shell脚本如下: ...

  7. 利用XSLT把ADO记录集转换成XML

    由于XML(可扩展标记语言:eXtensible Markup Language)真正的平台无关性,它正在逐渐成为数据传输的主要介质.XML是一种自描述的语言,数据本身就已经包含了元数据,即关于数据本 ...

  8. oracle 游标查询数据库,Oracle数据库使用游标查询结果集所有数据

    --Oracle使用游标查询结果集所有数据 DECLARE myTabelName NVARCHAR2(200):=''; --表名 myTableRowComment NVARCHAR2(200): ...

  9. MySQL笔记13:查询结果集

    操作mysql - 查询结果集 1.用mysql进行数据查询的时候,mysql会返回一个结果集给我们,接着我们需要调用mysql的API,从这个结果集中取得我们要的数据.取完数据之后,需要释放这个结果 ...

  10. 关于如何生成随机记录

    方法一: 在ACCESS环境中用rnd函数解决,以下查询展示了如何从表中随机抽取10条记录 SELECT top 10 * FROM tbl1 ORDER BY Rnd(id) 另外, Rnd(id) ...

最新文章

  1. 感冒了,头晕晕沉沉的,什么时候能好啊!
  2. java中的内存分配原则
  3. Js里面IF(var)表示什么意思?js中if的写法、含义
  4. 使用Androidkiller编译APK文件时出现libpng error: Not a PNG file的错误
  5. ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
  6. 使用python的笔记
  7. linux常用命令练习:wc、cut、|、tee、tail
  8. Linux字符设备驱动实现
  9. Hugging Face Course-Introduction学习小记 (part2)
  10. react中使用eslint+prettier+airbnb校验代码风格
  11. 以太坊geth节点同步亲测经历
  12. 单片机数据上传到阿里云物联网平台后,如何在手机端和网页端获取获取数据?
  13. domino服务器打开邮件,Domino邮件服务器配置(接收、发送).doc
  14. 计算机三种不同类型的用户账户,网络操作系统——Windows Server 2008篇 教学课件 1 作者 刘本军 李建利 [项目5]用户与组的管理.ppt...
  15. python 期货现货差价监测_火币网现货API[Python3版]
  16. oracle 11g ocp 笔记(6)-- oracle安全
  17. POJ1837 DP
  18. TomCat报404错误是什么原因该怎么解决
  19. 个人计算机cache是什么意思,cache在计算机中的作用是什么?
  20. Daily English - ... is driving me up a wall.

热门文章

  1. 【转】vim ctag使用方法
  2. [转]HTTP消息格式
  3. Java学习笔记-枚举类
  4. [BZOJ5302][HAOI2018]奇怪的背包(DP)
  5. lombok的详细使用
  6. 什么是网关软件?国内有好的资源网关软件吗?
  7. python 读取excel表格的数据
  8. 如何用C#+WinRAR 实现压缩 分类:
  9. 打造个人品牌的重要性被高估了
  10. javascript闭包续