разница между $ query> num_rows () и $ this-> db-> count_all_results () в CodeIgniter и которая рекомендуется

В сценарии мне нужно знать количество записей, которое будет возвращать запрос, который в codeigniter может быть выполнен с помощью $query->num_rows() или $this->db->count_all_results() . Какой из них лучше и в чем разница между этими двумя?

Solutions Collecting From Web of "разница между $ query> num_rows () и $ this-> db-> count_all_results () в CodeIgniter и которая рекомендуется"

С помощью 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 

$this->db->count_all_results является частью запроса Active Record (подготовка запроса, только возврат номера, а не фактические результаты).

$query->num_rows() выполняется на объекте $query->num_rows() после возвращения результатов из БД).

Which one is better and what is the difference between these two почти лишен меня, кто-то просто хочет получить количество записей без повторного касания или выполнить другой запрос, в котором задействован тот же ресурс. Кроме того, память, используемая этими двумя функциями, в конце концов одинакова, поскольку с count_all_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'); 

Просто count_all_results потребует снова выполнить запрос.

Мы также можем использовать

 return count_all('table_name'); 

или

 $this->db->from('table_name'); return $this->db->count_all_result(); 

или

 $query = $this->db->query('select * from tab'); return $query->num_rows(); 

Общее количество результатов

 $this->db->count_all_results('table name');