当结果不为空时,num_rows()没有返回正确的行数

时间:2017-07-30 06:39:23

标签: php codeigniter codeigniter-3 mysql-num-rows

我在CodeIgniter中处理一个Join查询。查询运行完全正常。 问题是$query->num_rows()。这就是我编写连接查询的方式。

$this->db->select('related colums');
$this->db->from('table1 as t1');
$this->db->join('table2 as t2', 't1.id = t2.id', 'left outer');
$this->db->join('table3 as t3', 't1.id_second = t3.id', 'left outer');                                                          
$this->db->where('t1.column', $some_varibale);
$this->db->order_by("t1.column", "desc");
$query = $this->db->get();

$query_result = $query->result_array();
$number_of_row = $query->num_rows(); // This line of code is not working properly. 

print_r($number_of_row); 

// To check result is empty or not.

if(!empty($query_result)){
    echo 'not empty';
} else {
    echo "empty";
}

问题:

当我打印$number_of_row时,它给了我13但是当我打印$query_result时,它只会显示一行是正确的结果。(我仔细检查过它) 所以问题是我期待$query->num_rows()如果我在结果中只得到一行,则会返回1。

当我得到一个空结果时,我有交叉检查它然后它将按预期显示0。但如前所述,当我在结果中得到一行时,它将显示13个数字。

我知道count它会起作用,但问题是为什么这个$query->num_rows()无法正常工作?

我没弄明白我做错了什么?

1 个答案:

答案 0 :(得分:1)

试试这个:

$number_of_row = $this->db->affected_rows();

如果有效,请告诉我