Codeigniter - обработка ошибок при использовании активной записи
Я собираю несколько моделей для своего сайта codeigniter и, похоже, не могу найти в документации ни слова о том, как обрабатывать ошибки, которые могут возникнуть при использовании системы активных записей.
Документация демонстрирует, как выполнять CRUD вместе с некоторыми относительно сложными запросами, но нигде по ходу дела не обсуждается обработка ошибок. Я провел быстрый поиск в Google, и, похоже, классы активных записей не создают исключений. Так ли это на самом деле? Нет тогда попробуй поймать...
Итак, как вы кодируете для обработки ошибок базы данных в codeigniter? (неудачное соединение, дубликат ключа, нарушенная целостность ссылок, усечение, неправильные типы данных и т. Д. и т. Д.)
2 answers
Независимо от того, используете вы класс активной записи или нет, вы можете получить доступ к ошибкам базы данных с помощью $this->db->_error_message()
и $this->db->_error_number()
.
Если вы используете базу данных mysql, эти функции эквивалентны mysql_error()
и mysql_errno()
соответственно. Вы можете проверить эти функции, просмотрев исходный код драйвера базы данных для используемой вами базы данных. Они находятся в системе/базе данных/ драйверах.
Итак, после выполнения запроса вы можете проверить наличие ошибок, используя что-то вроде:
if ($this->db->_error_message()) \\handle error
Прямо с форума поддержки CodeIgniter:
$res = $this->db->query($str);
if (!$res) {
// if query returns null
$msg = $this->db->_error_message();
$num = $this->db->_error_number();
$data['msg'] = "Error(".$num.") ".$msg;
$this->load->view('customers_edit_view',$data);
}
Обратите внимание, что вы также можете регистрировать ошибки активной записи, зайдя в файл конфигурации приложения CI и установив следующее:
$config['log_threshold'] = 1;