2010-11-25 2 views
56

:CodeIgniter - 한 행만 반환합니까? 내가 사용, 하나 개의 행을 반환해야 데이터베이스에 쿼리를 수행하고있는 경우 순간

...query stuff... 
$query = $this->db->get(); 
$ret = $query->result(); 
return $ret[0]->campaign_id; 

는 첫 번째 행을 반환하는 CodeIgniter의 기능이 있습니까? 과 같은 것 $query->row();

쿼리 개체를 직접 사용하는 것만으로도 한 행만 있으면 의 기능이 더 뛰어납니다.

$query->campaign_id;

+0

가능한 복제 [CodeIgniter는 $ this-> DB->의 get(), 내가 특정 행에 대한 값을 반환 어떻게?] (http://stackoverflow.com/questions/8541291/codeigniter-this- db-get-how-do-i-return-values-for-a-specific-row) – Ayub

답변

94

당신은 당신의 자신의 질문 : 당신은 이런 식으로 뭔가를 할 수 대답했습니다

$query = $this->db->get(); 
$ret = $query->row(); 
return $ret->campaign_id; 

당신은 여기에 대한 자세한 내용을보실 수 있습니다 : http://www.codeigniter.com/user_guide/database/results.html

+3

롤, 나는 그것이 실제로 존재할 것을 기대하지 않고 있었다 ... awesome – Hailwood

+1

이것은 성능을 낭비하지 않습니까? –

11

은 알리슨이 말에 추가하려면 당신은 행이 반환되는지 확인 할 수 있습니다. 당신이 한 줄을 초래할 수 있습니다으로

// Query stuff ... 
$query = $this->db->get(); 

if ($query->num_rows() > 0) 
{ 
    $row = $query->row(); 
    return $row->campaign_id; 
} 

return null; // or whatever value you want to return for no rows found 
23

이 더 나은 방법입니다

$this->db->query("Your query")->row()->campaign_id; 
+0

db에서 쿼리하는 쉬운 방법. – bkac

4

당신이 첫 번째 행을 얻기 위해 의도되는 코드를 명확하게하기 위해, CodeIgniter는 이제 사용할 수 있습니다 :

if ($query->num_rows() > 0) { 
    return $query->first_row(); 
} 

첫 번째 행을 검색합니다.

1

두 줄로만 변경하면 원하는 것을 실제로 얻을 수 있습니다.

$query = $this->db->get(); 
$ret = $query->row(); 
return $ret->campaign_id; 

시도해보십시오.

2
$this->db->get()->row()->campaign_id; 
관련 문제