2014-01-06 29 views
3

我似乎無法得到以下查詢運行並正確返回num_rows。無論發生什麼,$query->num_rows > 0總是會返回false,即使我希望它返回true。有任何想法嗎?Codeigniter查詢 - > num_rows返回0不正確

$post_id = $this->input->post('post_id'); 
    $poster_id = $this->input->post('poster_id'); 
    $my_id = $this->session->userdata('id'); 

    $query = $this->db->query("SELECT * FROM default_post_likes 
           WHERE liker_id = '$my_id' 
           AND post_id = '$post_id'"); 

    if ($query->num_rows > 0) { 
     echo json_encode(array('error' => 'e1')); 
    } else { 
     $data = array(
      'poster_id' => $poster_id, 
      'post_id' => $post_id, 
      'liker_id' => $my_id 
     ); 

     $this->db->insert('default_post_likes', $data); 

     echo json_encode(array('success' => true)); 
    } 

回答

6

$query->num_rows應該是一個功能$query->num_rows()

+0

甜。很好的發現。謝謝你的幫助! –

+0

我很驚訝,工作,我很確定有一個變量'num_rows'查詢對象。 –

+0

我確定這是,但由於某種原因,它返回了'0',在這種情況下這是錯誤的。它可能是一個有問題的驅動程序。我的猜測是'sqlsrv'。我想我之前也有過這個問題。 –

0

這裏,問題在於

if ($query->num_rows > 0) { 
    echo json_encode(array('error' => 'e1')); 
} 

$query->num_rows (Wrong) 

應該是一個函數,因此你必須使用它作爲

$query->num_rows() (Right) 

這就是爲什麼它正在返回False