Php $query之间的差异>;num_rows()和$this->;db->;计算CodeIgniter&;中的所有结果();推荐哪一种
在一个场景中,我需要知道查询将返回的记录集计数,这在codeigniter中可以通过Php $query之间的差异>;num_rows()和$this->;db->;计算CodeIgniter&;中的所有结果();推荐哪一种,php,codeigniter,Php,Codeigniter,在一个场景中,我需要知道查询将返回的记录集计数,这在codeigniter中可以通过$query->num_rows()或$this->db->count_all_results()完成。哪一个更好,这两者之间有什么区别?使用num_rows()首先执行查询,然后可以检查得到的行数count\u all\u results()只提供查询将产生的行数,而不提供实际的结果集 // num rows example $this->db->select('*'); $this->db-
$query->num_rows()
或$this->db->count_all_results()
完成。哪一个更好,这两者之间有什么区别?使用num_rows()
首先执行查询,然后可以检查得到的行数<另一方面,code>count\u all\u results()只提供查询将产生的行数,而不提供实际的结果集
// num rows example
$this->db->select('*');
$this->db->where('whatever');
$query = $this->db->get('table');
$num = $query->num_rows();
// here you can do something with $query
// count all example
$this->db->where('whatever');
$num = $this->db->count_all_results('table');
// here you only have $num, no $query
$this->db->count\u all\u results
是查询的一部分(准备查询,只返回数字,不返回实际结果)
$query->num_rows()
是在数据库返回结果后对执行的。哪一个更好,这两个之间的区别是什么
对我来说几乎是不可能的,有人只想获得记录的数量,而不需要重新触摸或执行涉及相同资源的另一个查询。此外,这两个函数使用的内存毕竟是相同的,因为使用count\u all\u result
时,您仍在执行get
(用CI AR术语),因此我建议您使用另一个函数(或者改用count())这给了您可重用性的好处。有两种方法可以计算查询将返回的记录总数。
首先这个
$query = $this->db->query('select blah blah');
return $query->num_rows();
这将返回查询带来的行数
第二
return $this->db->count_all_results('select blah blah');
只需计算再次运行查询所需的所有结果。我们也可以使用
return $this->db->count_all('table_name');
或
或
或
结果总数
$this->db->count_all_results('table name');
简单地说是咆哮
$this->db->get('table_name')->num_rows();
这将获得行数/记录数。但是,您也可以使用搜索参数
$this->db->select('col1','col2')->where('col'=>'crieterion')->get('table_name')->num_rows();
但是,应该注意的是,如果按以下方式应用,您将看到错误
$this->db->get('table_name')->result()->num_rows();
所以对我来说,使用
如果($this->db->count_all_results()>0{//do stuff}
?如果你关心的只是找到的结果的数量,那么是的,我想我会使用count_all_results
,我需要分页计数,非常感谢:)如果从优化的角度来看,count\u all\u结果
要好得多。
$this->db->get('table_name')->num_rows();
$this->db->select('col1','col2')->where('col'=>'crieterion')->get('table_name')->num_rows();
$this->db->get('table_name')->result()->num_rows();
$sql = "select count(*) as row from login WHERE firstname = '" . $username . "' AND password = '" . $password . "'";
$query = $this->db->query($sql);
print_r($query);exit;
if ($query->num_rows() == 1) {
return true;
} else {
return false;
}