CodeIgniter-возвращает только одну строку?


на данный момент, если я делаю запрос на базу данных, которая должна возвращать только одну строку, используя:

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

есть ли функция CodeIgniter для возврата первой строки? что-то вроде $query->row();

или еще лучше было бы возможность, если бы была только одна строка, просто использовать объект запроса напрямую.

например $query->campaign_id;

8 64

8 ответов:

вы только что ответили на свой вопрос :) Вы можете сделать что-то вроде этого:

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

вы можете прочитать больше об этом здесь: http://www.codeigniter.com/user_guide/database/results.html

Это лучший способ, так как он дает вам результат в одной строке:

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

чтобы добавить к тому, что сказал Алиссон, вы можете проверить, возвращается ли строка.

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

чтобы сделать код ясным, что вы собираетесь получить первую строку, CodeIgniter теперь позволяет использовать:

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

для получения первой строки.

$this->db->get()->row()->campaign_id;

изменить только в две строки, и вы получаете на самом деле то, что вы хотите.

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

попробовать его.

мы можем получить один предел использования в запросе

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

класс receipt_model расширяет 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;
 }

}