CodeIgniter中$ query> num_rows()和$ this-> db-> count_all_results()之间的区别以及建议使用哪一个

Kum*_*mar 34 php codeigniter

在一个场景中,我需要知道查询将返回的记录集的计数,这在codeigniter中可以通过$query->num_rows()或完成$this->db->count_all_results().哪一个更好,这两者有什么区别?

dan*_*eth 47

有了num_rows()您先执行查询,然后你可以检查你有多少行了.count_all_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
Run Code Online (Sandbox Code Playgroud)

  • 如果您从优化的角度来看,“count_all_results”要好得多。 (2认同)

Jen*_*and 5

$this->db->count_all_resultsActive Record查询的一部分(准备查询,仅返回数字,而不是实际结果).

$query->num_rows()结果集对象上执行(在从DB返回结果之后).