Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 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;

попробуйте.