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表达式,集群,数据库.功能性能强大更不 ...
随机推荐
- 配置子目录Web.config使其消除继承,用虚拟目录创建多个网站的方法
来源:http://www.wtnzone.com/post/2011/02/20/Set-Web-Config-to-Turn-Inheritance-Off.aspx ASP.NET提供了强大的W ...
- 如何让两个div在同一行显示?一个float搞定
最近在学习div和css,遇到了一些问题也解决了很多以前以为很难搞定的问题.比如:如何让两个div显示在同一行呢?(不是用table表格,table对SE不太友好)其实,<div> 是一个 ...
- bootstrap 布局(收藏/摘抄)
bootstrap 12栅格 布局
- Axel替代wget
Axel替代wget 2011年11月10日admin发表评论阅读评论 Linux下用的最多的下载工具莫过于wget和curl,这两个工具虽然堪称经典.但其单线程的速度越来越不能大软件的下载.于是 ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- 自动化运维 Expect
Mac 下载:brew install homebrew/dupes/expect expect : -> 自动化脚本工具: 用于处理交互命令; #注意 调用时并不是使用的 /bin/b ...
- css的relative和position探究
在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absol ...
- iOS常用第三方开源框架和优秀开发者博客等
博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...
- 排序map
1.根据map的值,升序排序 Map<String, Integer> map = new TreeMap<String, Integer>(); map.put(" ...
- tp框架获取常量信息、方法、命名空间
获取系统常量信息: public function ShowInFo() { var_dump(get_defined_constants(true)); //如果参数为true,则分类显示 } 在这 ...