PHP CI框架 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() > )
{
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()详解的更多相关文章
- 【python3+request】python3+requests接口自动化测试框架实例详解教程
转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- Hadoop 新 MapReduce 框架 Yarn 详解
Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...
- 测试框架mochajs详解
测试框架mochajs详解 章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建 ...
- 转: javascript模块加载框架seajs详解
javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...
- Android热门网络框架Volley详解[申明:来源于网络]
Android热门网络框架Volley详解[申明:来源于网络] 地址:http://www.cnblogs.com/caobotao/p/5071658.html
- redux-saga框架使用详解及Demo教程
redux-saga框架使用详解及Demo教程 前面我们讲解过redux框架和dva框架的基本使用,因为dva框架中effects模块设计到了redux-saga中的知识点,可能有的同学们会用dva框 ...
- Quartz.net开源作业调度框架使用详解
前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...
- Quartz.net开源作业调度框架使用详解(转)
前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...
随机推荐
- VB常用字符串操作函数
1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符串X的第一个字符的字符码 P=Chr(X) 返回字符码等于X的字符 [范例]: (1)P=Chr(65) ‘ 输 ...
- 转载:Centos7 从零编译配置Memcached
序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...
- 共享MFC dULL
>------ 已启动生成: 项目: OSGtest, 配置: Debug Win32 ------1>正在编译...1>AddScene.cpp1>main.cpp1> ...
- SPOJ FTOUR2 - Free tour II
Description 有些黑点,问你选择不超过 \(k\) 个黑点的路径,路径权值最大是多少. Sol 点分治. 这是qzc的论文题,不过我感觉他的翻译好强啊...我还是选择了自己去看题目... 点 ...
- WebView-存在的内存泄漏
0. Notice - earlier version 要使用WebView不造成内存泄漏,首先应该做的就是不能在xml中定义webview节点,而是在需要的时候动态生成.即:可以在使用WebView ...
- Python复习之生成器 generator
生成器 generator def h(): print "hello" m = yield 5 print "m:", m d = yield 12 prin ...
- Glassfish在SpringMVC服务端接收请求时字符出现乱码的解决办法
环境描述 前端:jsp 后端:SpringMVC Controller 尽管jsp页面已设置了pageEncoding: <%@page contentType="text/html& ...
- urlencode遇到中文编码问题
urlencode并不会改变输入的编码格式, 默认会将中文输出为 gbk 编码, 类似的, quote 会对中文进行 gbk 编码 不过, 当遇到嵌套多层的字典时, 问题就来了, 中文会被 utf8 ...
- window.print() 打印页面部分内容的方法
用 JavaScript 实现页面数据的打印 : 主要是用到了一个 print() 函数 , 该函数将会打印整个 web 页面 body 内的所有 html 数据 ! 使用方法为 window.pri ...
- JqueryEasyUI之DataGrid扩展
DataGrid通用合并扩展方法: $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return j ...