用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7458|回复: 0
收起左侧

[数据库] ci数据库执行错误时,显示错误信息,而非错误页面

[复制链接]
发表于 2011-7-28 20:28:27 | 显示全部楼层 |阅读模式
为自己mark下,让自己不忘记

在使用CI链接sqlserver的时候,由于数据表有很多约束条件,使用actived写入的话不是很好检查,而且也会容易漏掉某些情况

google中查找,说必须修改driver.php文件,这样的话就修改了ci框架了。

在application文件夹的core中新增一个my_exception extends CI_Exceptions 的类,
function show_error($heading, $message, $template = 'error_general', $status_code = 500){}重写一次


其实只是加了判断,判断$template是不是为'error_db',如果是error_db的错误的话就直接echo 错误$message[1]$message是一个数组,但数据库返回的错误一般都在$message[1]
这样在使用actived 的时候写入失败就不会显示错误页面信息了,而会输出错误信息,对于使用jquery异步执行的时候很好用,直接提示为什么写入失败了


对于数据表的约束,如果违反了该约束,数据库反馈的信息中是会有约束的名称的,这样的话就可以用正则匹配,匹配成功就输出自己更形象的错误信息。

本版积分规则