我有一个带有唯一键的表(date
+ userid
)在我的网络应用程序数据库中。当我尝试插入现有记录时date
and userid
我收到以下错误:
dupicate key in table
我在应用程序配置中打开了数据库调试器,因为我需要使用 MySQL 错误号和消息。现在我需要处理这个错误。我可以在控制器中使用硬编码常量,但我认为这不是一个好主意。我在很多地方都需要数据库错误处理,而且我不喜欢CodeIgniter的错误处理。关于处理数据库错误的最佳实践是什么?
我们在项目结构中使用如下:
$this->db->_error_number();
$this->db->_error_message();
但这个未记录的功能在下一个版本中可能会改变。
当然你可以简单地使用标准 php for mysql 错误处理函数:
mysql_errno()
mysql_error()
CI 在内部使用这些函数。
对我来说,最佳实践是在自定义模型的基类(BaseModel)中使用
$this->db->_error_number();
并确定错误,接下来抛出异常,并包含来自以下信息的错误消息
$this->db->_error_message();
所有从 BaseModel 派生的模型,并调用方法来检查数据库错误的最后一个请求,并且您的模型必须处理异常,并处理它(可能是附加日志),当然您可以将检查结果实现为结果值并避免抛出异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)