假设有一个user表,如果要查询符合条件sex=male的记录数量,有下面几种方法:

方法一:先取回所有符合条件的记录,再count

$res = $this->db->query("select * from user where sex='male'")->result_array();
$num = count( $res );

  不推荐上面的做法,因为我们的目的不是取回表中的数据,只需要具体的行数。取回数据的过程就是一个多余的操作,会浪费很多资源!

方法二:在SQL语句中使用count(*)

$sql = "select count(*) num from user where sex='male'";
$res = $this->db->query($sql)->row_array();
$num = $res['num'];

  

方法三:在取结果之前打印query返回值,通过获取query内部的属性名来获取num_rows,注意全是属性,不能使用数组格式访问:

$sql = "select *  from user where sex='male'";
$res = $this->db->query($sql);
print_r($res);

  访问程序,打印结果如下:

CI_DB_mysqli_result Object
(
[conn_id] => mysqli Object
(
[affected_rows] => 130
[client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: ....... $
[client_version] => 50011
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[error_list] => Array()
[field_count] => 25
[host_info] => Localhost via UNIX socket
[info] =>
[insert_id] => 0
[server_info] => 5.1.73-log
[server_version] => 50173
[stat] => ........
[sqlstate] => 00000
[protocol_version] => 10
[thread_id] => 28698933
[warning_count] => 0
)
[result_id] => mysqli_result Object
(
[current_field] => 0
[field_count] => 25
[lengths] =>
[num_rows] => 130
[type] => 0
)
[result_array] => Array()
[result_object] => Array()
[custom_result_object] => Array()
[current_row] => 0
[num_rows] =>
[row_data] =>
)

  可以注意到这里面有一个conn_id->affected_rows和 result_id->num_rows,所以可以通过这两个值获得结果集的记录数量:

echo $res->conn_id->affected_rows;
echo $res->result_id->num_rows;

  

  第三种方法并不是很好的选择,推荐第二种,提到第三种方法的目的在于了解query的返回值,然后可以自己根据结果写一些helper来处理一些事情

最新文章

  1. SQL Server 抛出自定义异常,由C#程序俘获之并进行相应的处理
  2. [JavaEE]调用Restful Service 出现415 Unsupported Media Type的问题(Rest Request Header中的Content-Type问题)
  3. Top 10 Mistakes Java Developers Make--reference
  4. java语言基础特性
  5. iOS 定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等授权检测
  6. Python:ajax 学习笔记
  7. HDU 5792 World is Exploding
  8. win7电脑关机时间长怎么办
  9. Vue购物车实例
  10. Math.floor(Math.random()*3+1)
  11. Helm 入门指南
  12. python闭包的理解说明
  13. Linux let 命令
  14. KafkaOffsetMonitor 安装
  15. OCiOS开发:音频播放器 AVAudioPlayer
  16. Kubernetes学习之路(一)之概念和架构解析和证书创建和分发
  17. 将MyEclipse项目导入到Eclipse中
  18. xp 如何打开(进行)远程桌面连接
  19. you-get 下载网络上的富媒体信息
  20. 物联网通信 - RESTDemo示例程序

热门文章

  1. Python3 socket网络编程(一)
  2. PHP中的Session工作原理
  3. Linux下编译安装Apache报APR not found错误的解决办法
  4. Kernel数据结构移植(list和rbtree)
  5. nginx入门与实战
  6. Unix/Linux环境C编程新手教程(21) 各个系统HelloWorld跑起来效果怎样?
  7. 基于Spring Boot和Shiro的后台管理系统FEBS
  8. 转://通过udev创建ASM共享磁盘(RAC)
  9. ansible的playbook进行yum批量安装nginx最新版本
  10. 004_后端js编写工具