CodeIgniter-возвращает только одну строку?
на данный момент, если я делаю запрос на базу данных, которая должна возвращать только одну строку, используя:
...query stuff...
$query = $this->db->get();
$ret = $query->result();
return $ret[0]->campaign_id;
есть ли функция CodeIgniter для возврата первой строки?
что-то вроде $query->row();
или еще лучше было бы возможность, если бы была только одна строка, просто использовать объект запроса напрямую.
например $query->campaign_id;
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(); }
для получения первой строки.
изменить только в две строки, и вы получаете на самом деле то, что вы хотите.
$query = $this->db->get(); $ret = $query->row(); return $ret->campaign_id;
попробовать его.