Нет.На самом деле, нет.Однако вы можете контролировать, что возвращает модель.Имейте в виду, что, например, пустой набор результатов не обязательно является «неудачным» запросом.Есть много случаев, когда пустой набор результатов может быть полезен.
После фактического выполнения запроса вы получите объект с результатом
, например, при выборе вы можете сделать$result = $this->db->get()
и ваша переменная $result
станет объектом с большим количеством информации, к которой вы можете получить доступ:
Количество возвращаемых строк: $result->num_rows();
Возвращаемое содержимое: $result->result();
Определенные строки: $result->row(0);
Определенное полев определенной строке: $result->row(3)->field_name;
При вставке или обновлении становится доступным $this->db->affected_rows()
, чтобы вы могли проверить, сколько строк было обновлено или вставлено.Вставки также делают $this->db->insert_id()
доступным в случае, если вам нужно значение первичного ключа таблицы для вставленной строки.
Таким образом, вы управляете логикой.
при выборе я обычно делаю:
$query = $this->db->get();
if ($query->num_rows() == 0)
{
return false;
}
else
{
return $query->row(0);
}
Затем я проверяю в контроллере, вернула ли модель ложный или реальный набор результатов (иногда я просто возвращаю true
вместо фактического набора результатов, если я просто проверяю, существует ли что-либо)).Вы можете адаптировать результаты к вашим потребностям.
При вставке я обычно проверяю:
if ($this->db->affected_rows() != 0)
{
return $this->db->insert_id();
}
else
{
return false;
}
(в контроллере возвращаемое false
будет обрабатываться как «ошибка вставки»").
Чтобы ответить на ваш вопрос более глобально: Нет, по умолчанию ничего не происходит, но Codeigniter дает вам все необходимое, чтобы адаптировать поведение вашего сайта к вашим конкретным потребностям и вкусам