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

Codeigniter - обработка ошибок при использовании активной записи

Я собираю несколько моделей для моего сайта codeigniter и не могу найти ни слова в документации о том, как обрабатывать ошибки, которые могут возникнуть при использовании системы Active Record.

Документация демонстрирует, как выполнять CRUD вместе с некоторыми относительно вовлеченными запросами, но не там, где вдоль линии рассматривается обработка ошибок. Я сделал быстрый поиск в Google, и оказалось, что классы Active Record не генерируют исключения. Это так? Не пытайтесь поймать тогда...

Итак, как вы код для обработки ошибок базы данных в codeigniter? (неудачное соединение, дубликат ключа, нарушение ссылочной целостности, усечение, плохие типы данных и т.д.)

4b9b3361

Ответ 1

Если вы используете активный класс записи или нет, вы можете получить доступ к ошибкам базы данных с помощью $this->db->_error_message() и $this->db->_error_number().

Если вы используете базу данных mysql, эти функции эквивалентны mysql_error() и mysql_errno() соответственно. Вы можете проверить эти функции, посмотрев исходный код драйвера базы данных для используемой базы данных. Они расположены в системе/базе данных/драйверах.

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

if ($this->db->_error_message()) \\handle error

Ответ 2

Прямо от форума поддержки 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);
} 

Обратите внимание, что вы также можете регистрировать ошибки Active Record, перейдя в конфигурационный файл приложения CI и устанавливая следующее:

$config['log_threshold'] = 1;