gpt4 book ai didi

php - 在哪里检查外键 : at PHP by additional queries, 或让 MySQL 引发错误?

转载 作者:行者123 更新时间:2023-11-29 07:01:03 26 4
gpt4 key购买 nike

处理数据库 INSERT 上的 FOREIGN KEY 错误的最佳方法是什么?

  1. 在 PHP INSERT 之前:加载检查外键匹配的额外查询 (SELECT)?

  2. 让 MySQL 抛出错误,让 PDO 抛出异常?

  3. 是否存在更多选项?

比较速度/优雅/可重用代码/等。

最佳答案

有时 1) 不是一个选项。想象一下,您有人参加 session 。如果你有一个 PeopleMeetings 表(M 到 N 关联),你不能做一个 SELECT 然后一个 INSERT ... b/c 你可以做一个 SELECT 并发现 Person 和 Meeting 都存在,那么另一个过程可以删除 session ,然后您将执行 INSERT,这将失败,因为 session 不再存在。

这就是为什么我总是执行 2)...显然,如果 session 不存在,我会在加载页面之前执行 SELECT,以向用户显示系统当前的 session ,但是执行 2) 是 def必须的。

更不用说您不需要再执行 2 个额外的查询(在我的示例中)一个针对人员,另一个针对 session ......您仍然可以优雅地处理错误,向用户提供出错信息(就像你执行 2 个 SELECT 查询时所做的那样)

此外,您应该使用事务...这样如果您在数据库上进行更改并且此 INSERT 失败,事务将回滚并且数据库不会处于不一致的状态

关于php - 在哪里检查外键 : at PHP by additional queries, 或让 MySQL 引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com