CodeIgniter - вернуть только одну строку? - PullRequest
69 голосов
/ 25 ноября 2010

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

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

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

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

Ответы [ 8 ]

124 голосов
/ 25 ноября 2010

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

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

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

28 голосов
/ 20 декабря 2012

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

$this->db->query("Your query")->row()->campaign_id;
13 голосов
/ 25 ноября 2010

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

// 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
6 голосов
/ 08 января 2014

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

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

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

2 голосов
/ 17 октября 2016
$this->db->get()->row()->campaign_id;
1 голос
/ 03 марта 2015

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

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

попробуй.

0 голосов
/ 09 июля 2018

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

$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);
 $query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);
0 голосов
/ 24 марта 2018

класс receive_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;
 }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...