2010-11-25 40 views
56

En el momento si estoy haciendo una consulta en la base de datos que sólo debe devolver una fila, usando:CodeIgniter: ¿devuelve solo una fila?

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

¿Existe una función CodeIgniter para devolver la primera fila? algo así como $query->row();

O incluso mejor sería la capacidad de, si hubiera una sola fila, para utilizar el objeto de consulta directamente.

p. Ej. $query->campaign_id;

+0

duplicado posible de [CodeIgniter $ this-> db-> get(), ¿cómo puedo valores de retorno de una fila específica?] (Http://stackoverflow.com/questions/8541291/codeigniter-this- db-get-how-do-i-return-values-for-a-specific-row) – Ayub

Respuesta

94

usted acaba respondido a su propia pregunta :) Usted puede hacer algo como esto:

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

Puede leer más sobre esto aquí: http://www.codeigniter.com/user_guide/database/results.html

+3

lol, en realidad no esperaba que eso existiera ... impresionante – Hailwood

+1

¿Esto no desaprovecha el rendimiento? –

11

para añadir a lo que dijo Alisson puedes verificar si se devuelve una fila.

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

Esto es mejor manera, ya que le da resultado en una sola línea:

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

Manera fácil de consultar en db. – bkac

4

para hacer el código claro que tiene la intención de obtener la primera fila, CodeIgniter ahora le permite utilizar:

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

Para recuperar la primera fila.

1

Cambie solo en dos líneas y obtendrá realmente lo que desea.

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

pruébelo.

2
$this->db->get()->row()->campaign_id; 
Cuestiones relacionadas