CodeIgniter - возвращает только одну строку?
В настоящий момент, если я делаю запрос в базе данных, который должен возвращать только одну строку, используя:
...query stuff...
$query = $this->db->get();
$ret = $query->result();
return $ret[0]->campaign_id;
Есть ли функция CodeIgniter для возврата первой строки?
что-то вроде $query->row();
Или даже лучше бы была возможность, если бы была только одна строка,
просто использовать объект запроса напрямую.
например. $query->campaign_id;
Ответы
Ответ 1
Вы только что ответили на свой вопрос:)
Вы можете сделать что-то вроде этого:
$query = $this->db->get();
$ret = $query->row();
return $ret->campaign_id;
Подробнее об этом можно прочитать здесь: http://www.codeigniter.com/user_guide/database/results.html
Ответ 2
Это лучший способ, поскольку он дает результат в одной строке:
$this->db->query("Your query")->row()->campaign_id;
Ответ 3
Чтобы добавить к тому, что сказал Алиссон, вы можете проверить, вернётся ли строка.
// 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
Ответ 4
Чтобы сделать код чистым, что вы хотите получить первую строку, CodeIgniter теперь позволяет использовать:
if ($query->num_rows() > 0) {
return $query->first_row();
}
Получить первую строку.
Ответ 5
$this->db->get()->row()->campaign_id;
Ответ 6
Измените только две строки, и вы получаете фактически то, что хотите.
$query = $this->db->get();
$ret = $query->row();
return $ret->campaign_id;
попробуйте.