CodeIgniter - повернути лише один рядок?


77

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

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

Чи існує функція CodeIgniter для повернення першого рядка? щось на зразок$query->row();

Або ще кращою була б можливість, якщо б був лише один рядок, просто використовувати об’єкт запиту безпосередньо.

напр $query->campaign_id;

Відповіді:


140

Ви щойно відповіли на власне запитання :) Ви можете зробити щось подібне:

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

Детальніше про це ви можете прочитати тут: http://www.codeigniter.com/user_guide/database/results.html


2
$row = json_decode($query->row(), true);закінчився використанням -> $row = $query->result_array()[0];
CrandellWS

30

Це кращий спосіб, оскільки він дає результат в одному рядку:

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

Як ми можемо використовувати це, як трійковий оператор? (query)?(getresult) : (null)
Знанесвар

13

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

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

8

Щоб зробити код зрозумілим, що ви збираєтеся отримати перший рядок, CodeIgniter тепер дозволяє вам використовувати:

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

Щоб отримати перший рядок.



2

Якщо вам потрібно отримати лише один запис із таблиці бази даних за допомогою запиту codeigniter, тоді ви можете зробити це за допомогою row (). ми можемо легко повернути один рядок з бази даних у codeigniter.

$data = $this->db->get("items")->row();

1

Змінюйтеся лише у два рядки, і ви отримуєте фактично те, що хочете.

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

Спробуй це.




-3

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

}

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.