web-dev-qa-db-fra.com

CodeIgniter - retourne une seule ligne?

À l'heure actuelle, si je fais une requête sur la base de données, celle-ci ne doit renvoyer qu'une ligne, en utilisant:

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

Existe-t-il une fonction CodeIgniter qui renvoie la première ligne? Quelque chose comme $query->row();

Ou mieux encore, il serait possible, s'il n'y avait qu'une seule ligne, d'utiliser simplement l'objet de requête directement.

par exemple. $query->campaign_id;

67
Hailwood

Vous venez de répondre à votre propre question:) Vous pouvez faire quelque chose comme ceci:

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

Vous pouvez en savoir plus à ce sujet ici: http://www.codeigniter.com/user_guide/database/results.html

120
Alisson

C'est mieux car cela vous donne un résultat en une seule ligne:

$this->db->query("Your query")->row()->campaign_id;
26
Suresh Kamrushi

Pour ajouter à ce qu'Alisson a dit, vous pouvez vérifier si une ligne est renvoyée.

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

Pour indiquer clairement au code que vous souhaitez obtenir la première ligne, CodeIgniter vous permet désormais d’utiliser:

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

Pour récupérer la première ligne.

6
bnp887
$this->db->get()->row()->campaign_id;
2
Maciej

Ne changez que sur deux lignes et vous obtenez réellement ce que vous voulez.

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

l'essayer.

1
lalitpatadiya