【发布时间】:2021-04-21 12:32:50
【问题描述】:
我在 Mysql 中有一个 PHP 脚本和一些约束规则,以防止用户删除包含产品的类别。 但是当用户尝试删除禁止的类别时,他将面临致命错误而不是网站页面
Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails...
我需要显示如下错误而不是致命错误:
当它与产品相关时,您不能删除此类别。
编辑:请注意,try/catch 不适用于致命错误
【问题讨论】:
-
根据您网站的逻辑,当某些内容无法删除时,最好禁用删除按钮(显示页面时检查依赖产品)。
-
如果我每次都要检查相关产品,那为什么要使用约束规则?
-
数据库规则是为了确保正确设置数据库,(恕我直言)业务规则更适合用户。
-
您无法使用 try/catch 捕获致命错误。
-
我需要阻止用户删除类别
标签: php mysql pdo error-handling constraints