控制器:笨数据库错误处理
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