所以我对PHP页面在表中插入新行的最佳实践有疑问。有一些必填字段(aka NOT NULL)和一些可选字段(可以是NULL)。是否更好地使用一个查询插入所有内容,或者只是执行必填字段,获取插入的ID并使用一个或多个其他查询更新其他字段?
如果我使用where <primary key> = "x"
进行多次更新,会有很大的性能影响吗?或者更好的做多个更新,以便如果其中一个可选更新不起作用,其余的更新?
答案 0 :(得分:6)
通常,您应该使用所有值执行单个INSERT。这在数据库处理方面会更便宜,但同样重要的是(或者更多)它会使您的应用程序代码更加简单。
我不确定为什么替代方案甚至会发生在您身上,但它让我觉得可能有一些应用程序特定的原因您认为某些子列值将被拒绝。如果是这样,请告诉您更多关于您的具体情况。
答案 1 :(得分:1)
我会使用一个查询有两个原因:
答案 2 :(得分:0)
对于单行,您应该真正做一个INSERT。如果担心列值无效,则应在应用程序层中更加强调在进行INSERT之前验证代码(数据类型,数据长度等)。
您可以通过这种方式获得更全面的代码,同时对应用服务器,数据库服务器和网络的影响更小。