控制器:笨數據庫錯誤處理
function edit($id)
{
$this->form_validation->set_rules('name', 'Name', 'required|xss_clean');
$this->load->model('manager_model');
$pageData['type'] = 'managers';
$pageData['title'] = "Edit Manager";
$data['records'] = $this->manager_model->getManager($id);
$this->load->view('header', $pageData);
$this->load->view('db_options_view', $pageData);
if ($this->form_validation->run() == FALSE)
{
$this->load->view('managers/editManagerForm_view', $data);
}
else
{
$name = $this->input->post('name');
$this->manager_model->updateRecord($id, $name);
$this->load->view('managers/editManagerSuccess_view');
}
$this->load->view('footer');
}
型號:
function updateRecord($id, $name)
{
$data = array('name' => $name);
$this->db->where('id', $id);
$this->db->update('manager', $data);
}
我的問題是這樣的。我的數據庫表不接受名稱字段的重複值。所以,當我在測試它,我進入了一個重複的名稱和笨返回以下:
數據庫出錯 錯誤號碼:1062 重複項「阿蘭·帕杜」的關鍵2 UPDATE manager
SET name
=「阿蘭·帕杜」 WHERE id
= '2' 文件名:/var/www/vhosts/mysite.com/httpdocs/personal/models/manager_model.php 行號:74
我想處理這個錯誤我自己的控制器,我已經做了一些閱讀,發現我必須設置$db['default']['db_debug'] = FALSE;
以防止codeigniter顯示錯誤。
有沒有辦法只是把特定的錯誤,如重複entrys?
或者你會推薦完全關閉它們嗎?
另外..我相當新的codeigniter,所以如果你能發現我的代碼中的任何不良做法隨時指出!
這是字面上我的確切情況。乾杯救我一份工作! – JackalopeZero 2012-10-07 13:27:31
關於此主題的另一個重要問題是:「如果您通過PHP循環遍歷許多插入,例如,如果在CI中關閉數據庫錯誤,將繼續執行,還是執行停止而不會僅僅打印錯誤消息? – axiom82 2014-03-14 01:47:05