Лучшее решение, которое я нашел, - это управлять разницей между ОШИБКОЙ и 0 затронутыми строками.0 затронутых строк - не обязательно плохая вещь, но вы хотите знать об ошибке:
if ($this->db->_error_message()) {
return FALSE; // Or do whatever you gotta do here to raise an error
} else {
return $this->db->affected_rows();
}
Теперь ваша функция может различать ...
if ($result === FALSE) {
$this->errors[] = 'ERROR: Did not update, some error occurred.';
} else if ($result == 0) {
$this->oks[] = 'No error, but no rows were updated.';
} else {
$this->oks[] = 'Updated the rows.';
}
Просто некоторыебыстрый взлом - очевидно, вы должны сделать код более многословным, если у вас есть другие люди, использующие его.
Дело в том, рассмотрите возможность использования _error_message, чтобы различать 0 обновленных строк и реальную проблему.