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

$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() > )
{
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() > )
{
$row = $query->row(); echo $row->title;
echo $row->name;
echo $row->body;
}
你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第  行的数据:

$row = $query->row();

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

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

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

$query->row(, '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() > )
{
$row = $query->row_array(); echo $row['title'];
echo $row['name'];
echo $row['body'];
} 你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 行的数据: $row = $query->row_array(); 如果传入的参数超出行索引,则返回第一行(索引为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 将不再可用

PHP CI框架 result()详解的更多相关文章

  1. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  2. python+requests接口自动化测试框架实例详解

    python+requests接口自动化测试框架实例详解   转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...

  3. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...

  4. 测试框架mochajs详解

    测试框架mochajs详解 章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建 ...

  5. 转: javascript模块加载框架seajs详解

    javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...

  6. Android热门网络框架Volley详解[申明:来源于网络]

    Android热门网络框架Volley详解[申明:来源于网络] 地址:http://www.cnblogs.com/caobotao/p/5071658.html

  7. redux-saga框架使用详解及Demo教程

    redux-saga框架使用详解及Demo教程 前面我们讲解过redux框架和dva框架的基本使用,因为dva框架中effects模块设计到了redux-saga中的知识点,可能有的同学们会用dva框 ...

  8. Quartz.net开源作业调度框架使用详解

    前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...

  9. Quartz.net开源作业调度框架使用详解(转)

    前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...

随机推荐

  1. VB常用字符串操作函数

    1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符串X的第一个字符的字符码 P=Chr(X) 返回字符码等于X的字符 [范例]: (1)P=Chr(65) ‘ 输 ...

  2. 转载:Centos7 从零编译配置Memcached

    序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...

  3. 共享MFC dULL

    >------ 已启动生成: 项目: OSGtest, 配置: Debug Win32 ------1>正在编译...1>AddScene.cpp1>main.cpp1> ...

  4. SPOJ FTOUR2 - Free tour II

    Description 有些黑点,问你选择不超过 \(k\) 个黑点的路径,路径权值最大是多少. Sol 点分治. 这是qzc的论文题,不过我感觉他的翻译好强啊...我还是选择了自己去看题目... 点 ...

  5. WebView-存在的内存泄漏

    0. Notice - earlier version 要使用WebView不造成内存泄漏,首先应该做的就是不能在xml中定义webview节点,而是在需要的时候动态生成.即:可以在使用WebView ...

  6. Python复习之生成器 generator

    生成器 generator def h(): print "hello" m = yield 5 print "m:", m d = yield 12 prin ...

  7. Glassfish在SpringMVC服务端接收请求时字符出现乱码的解决办法

    环境描述 前端:jsp 后端:SpringMVC Controller 尽管jsp页面已设置了pageEncoding: <%@page contentType="text/html& ...

  8. urlencode遇到中文编码问题

    urlencode并不会改变输入的编码格式, 默认会将中文输出为 gbk 编码, 类似的, quote 会对中文进行 gbk 编码 不过, 当遇到嵌套多层的字典时, 问题就来了, 中文会被 utf8 ...

  9. window.print() 打印页面部分内容的方法

    用 JavaScript 实现页面数据的打印 : 主要是用到了一个 print() 函数 , 该函数将会打印整个 web 页面 body 内的所有 html 数据 ! 使用方法为 window.pri ...

  10. JqueryEasyUI之DataGrid扩展

    DataGrid通用合并扩展方法: $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return j ...