Работа с дублирующимися ключами в codeigniter mysql insert - PullRequest
7 голосов
/ 14 февраля 2012

Что я хочу сделать, это примерно так:

function registerUser($username, $password){

$this->db->insert('tblUsers', array('username'=>$username, 'password'=>md5($password)));
if($this->db->_error_number()==1062){
    return "DUPLICATE";
}
return true;

}

Однако, в настоящий момент, если есть дубликат ключа, он не позволяет мне получить бит _error_number(). Его ошибка отображается так:

enter image description here

Как мне остановить codeigniter, чтобы он не вызывал ошибку и не передавал мне номер ошибки для надлежащего решения?

Спасибо

Ответы [ 2 ]

12 голосов
/ 14 февраля 2012

Вы можете получить доступ к сообщениям об ошибках MySQL в Codeigniter, используя:

$this->db->_error_message();

Очевидно, для DB_DEBUG должно быть установлено значение false в файле конфигурации базы данных:

Убедитесь, что для DB_DEBUG установлено значениеЛОЖЬ в файле конфигурации базы данных, или выполнение остановится, когда возникнет ошибка mysql (она не генерируется, она просто завершается из интерпретатора php)

Ссылка: http://codeigniter.com/forums/viewthread/79950/#413830

8 голосов
/ 01 июля 2013

Предложение:

$orig_db_debug = $this->db->db_debug;

$this->db->db_debug = FALSE;

RUN QUERY HERE

$this->db->db_debug = $orig_db_debug;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...