我使用HMVC。我的问题很简单。如何在活动记录中捕获错误?我们如何从模型(活动记录)返回自定义错误到控制器?
实际上,msn列是唯一的,所以,当我输入重复的值时,它会显示错误,如
错误编号:1062
为键'msn'复制条目'3696003284'
但是我想显示自定义错误,而不是这个
我的简单代码是:
function insert_data($msn_number, $date_val, $min_val, $max_val, $avg_val,$counter)
{
for($i=0;$i<$counter;$i++)
{
$data = array(
'msn' => $msn_number[$i],
'date' => $date_val[$i],
'min_val' => $min_val[$i],
'max_val' => $max_val[$i],
'average' => $avg_val[$i]
);
$result = $this->db->insert('storage_data', $data);
if(!isset($result))
{
echo "custom Error";
}
}
}
}
我想知道这个问题的答案,请帮助我!你可以试试:
$result = $this->db->insert('storage_data', $data);
if (!$result) {
$data['msg'] = $this->db->_error_message();
$this->load->view('viw_db_error', $data); // Create a viw_db_error.php view
}
确保"application/config/database.php
"文件中的"DB_DEBUG
"设置为"FALSE
",否则出现"mysql
"错误将导致执行中止。
更新:
或者你可以在每次插入新记录之前查询它,但这会非常昂贵,因为你是在循环中做的,它会发送许多查询/请求:
$q = $this->db->query("select msn from storage_data where msn = $msn_number[$i]");
if( $q->num_rows() ) {
// It already exists so maybe display a message
}