在php中阻止数据库提交断言失败

时间:2016-10-11 19:16:33

标签: php database codeigniter transactions assert

对于我的代码的健全性测试,我将断言放在我的代码中的各个地方。

我希望情况是每当命中一个断言时,就不应该完成数据库事务(即数据不应该提交给数据库,而应该回滚)。

我找不到任何干净的方法来实现这一目标。

我正在使用代码点火器框架。

知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

该功能不应该是断言的一部分。如果是这种情况,那么当断言被禁用时,功能将在生产模式中失真。

我们可以在断言失败时执行额外的数据库操作来记录和跟踪错误的更多细节,但不应该中止/干扰外部事务。

断言应仅用作调试功能。您可以将它们用于进行健全性检查,以检测应始终为TRUE的条件,如果没有则指示某些编程错误,或检查是否存在某些功能,如扩展功能或某些系统限制和功能。

断言不应用于输入参数检查等常规运行时操作。根据经验,如果未激活断言检查,则代码应始终能够正常工作。

More details