使用mysql::query()
进行UPDATE查询后,我可以检查mysqli::error
或mysqli::errno
以获取错误消息或号码。
这对记录错误非常有用,但我应该根据错误的严重程度来决定该怎么做。
如果无法访问数据库或类似的东西,我应该记录错误但不要暂停程序执行。
检查这种情况的常用方法是什么?
答案 0 :(得分:1)
您首先概述自己的期望,然后询问什么是常见的。我会说,如果数据库层无法连接到数据库,则抛出数据库异常是很常见的。所以很明显,在某些系统级别上出现了问题。
为了与数据库进行交互而编写的应用程序应该自行决定如何处理这些数据库异常。通常,如果没有数据库,那么期望数据库工作的代码就无法工作。
现在针对您调用逻辑错误的情况。这取决于很多。我不会专注于特定的数据库错误代码(甚至可能会随着时间的推移而改变,新版本会添加新版本,旧版本可能不再使用)。而是集中精力判断某些操作的返回数据是否符合您的预期,并提供此类值,以防您到目前为止没有。
例如:如果更新至关重要,并且您需要验证更新是否成功,请仔细检查。但是,决定它是否至关重要并不是数据库层的一部分。这是您的应用程序代码的一部分,例如域模型或事务脚本。
Mysqli本身可以在某些情况下抛出一些例外,扩展名有一个例外:
class mysqli_sql_exception extends RuntimeException
对于连接错误,您需要抛出自己的异常。因此,检查返回值,然后抛出数据库异常。