【发布时间】:2011-05-26 14:06:31
【问题描述】:
控制器:
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);
}
我的问题是这个。我的数据库表不接受名称字段的重复值。因此,当我测试它时,我输入了一个重复的名称,codeigniter 返回了以下内容:
发生数据库错误
错误号:1062
键 2 的重复条目“alan pardew”
更新manager SET name = 'alan pardew' 其中id = '2'
文件名:/var/www/vhosts/mysite.com/httpdocs/personal/models/manager_model.php
行号:74
我想自己在控制器中处理这个错误,我做了一些阅读,发现我必须设置 $db['default']['db_debug'] = FALSE; 以防止 codeigniter 显示错误。
是否有关闭特定错误(例如重复条目)的方法?
或者您会建议完全关闭它们吗?
另外..我对 codeigniter 还很陌生,所以如果您发现我的代码中有任何不好的做法,请随时指出!
【问题讨论】:
-
这就是我的确切情况。为我保住工作干杯!
-
关于这个主题的另一个重要问题是:“例如,如果您通过 PHP 循环遍历许多插入,如果在 CI 中关闭 db 错误,执行是否会继续执行,或者执行会停止而无需简单打印错误消息?
标签: database codeigniter error-handling