À 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;
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
C'est mieux car cela vous donne un résultat en une seule ligne:
$this->db->query("Your query")->row()->campaign_id;
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
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.
$this->db->get()->row()->campaign_id;
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.