difference between $query>num_rows() and $this->db->count_all_results() in CodeIgniter & which one is recommended

Kumar picture Kumar · Aug 12, 2011 · Viewed 130.3k times · Source

In a scenario I need to know the count of recordset a query will return, which in codeigniter can be done by $query->num_rows() or $this->db->count_all_results(). Which one is better and what is the difference between these two?

Answer

danneth picture danneth · Aug 12, 2011

With num_rows() you first perform the query, and then you can check how many rows you got. count_all_results() on the other hand only gives you the number of rows your query would produce, but doesn't give you the actual resultset.

// 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