CodeIgniter - nur eine Zeile zurückgeben?

76

Im Moment, wenn ich eine Abfrage in der Datenbank durchführe, die nur eine Zeile zurückgeben soll, verwenden Sie:

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

Gibt es eine CodeIgniter-Funktion, um die erste Zeile zurückzugeben? etwas wie$query->row();

Oder noch besser wäre die Möglichkeit, das Abfrageobjekt direkt zu verwenden, wenn es nur eine Zeile gäbe.

z.B $query->campaign_id;

Hagelholz
quelle

Antworten:

140

Sie haben gerade Ihre eigene Frage beantwortet :) Sie können so etwas tun:

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

Weitere Informationen finden Sie hier: http://www.codeigniter.com/user_guide/database/results.html

Alisson
quelle
2
$row = json_decode($query->row(), true);endete mit -> $row = $query->result_array()[0];
CrandellWS
30

Dies ist besser, da Sie ein Ergebnis in einer einzigen Zeile erhalten:

$this->db->query("Your query")->row()->campaign_id;
Suresh Kamrushi
quelle
Wie können wir diesen ternären Operator verwenden? (query)?(getresult) : (null)
Znaneswar
13

Um das zu ergänzen, was Alisson gesagt hat, können Sie überprüfen, ob eine Zeile zurückgegeben wird.

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

Um dem Code klar zu machen, dass Sie die erste Zeile abrufen möchten, können Sie mit CodeIgniter jetzt Folgendes verwenden:

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

So rufen Sie die erste Zeile ab

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

Wenn Sie nur einen Datensatz mithilfe der Codeigniter-Abfrage aus der Datenbanktabelle abrufen möchten, können Sie dies mit row () tun. Wir können leicht eine Zeile aus der Datenbank in Codeigniter zurückgeben.

$data = $this->db->get("items")->row();
Rahul Kr Daman
quelle
1

Ändern Sie nur in zwei Zeilen und Sie bekommen tatsächlich, was Sie wollen.

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

Versuch es.

lalitpatadiya
quelle
0

Wir können ein einzelnes using-Limit in der Abfrage erhalten

$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);

 $query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);
Shakawat Hossain
quelle
-3

Klasse Receipt_Model erweitert CI_Model {

   public function index(){

      $this->db->select('*');

      $this->db->from('donor_details');

      $this->db->order_by('donor_id','desc');

      $query=$this->db->get();

      $row=$query->row();

      return $row;
 }

}}

Shipra Bohra Aashhiiii
quelle