2011-11-16 45 views
1

在网站应用程序(如论坛)上的工作方案,用户可以添加或编辑其重播。我迄今为止使用的策略是使用不同的表单动作:一个用于插入,另一个用于更新。插入或更新 - 正确的方式

这是正确的方法还是我可以使用其他更容易维护的东西?

非常感谢!

回答

1

就我个人而言,我使用一个'编辑'变量与一个单一的形式。编辑表单时将edit变量设置为true,对于创建新表单则设置为false。我将这个变量(在表单中隐藏的元素)发送到处理数据的页面,并且该函数确定是将INSERT还是UPDATE插入到数据库中。

+0

但是,如果这是一个编辑,你必须发送ID以及 –

+0

当然,如果你正在编辑的东西,ID已经知道。 – rogerlsmith

1

您只能使用一个动作。如果在请求中没有设置主键,那么这是插入,否则是更新。

1

Insert or on duplicate key update意味着你可以有一个表单,如果它有一个在数据库中的id,它将更新,否则它会插入。

+0

当主键是一个自动递增的int时可能会导致一些问题(谨慎使用) – apokryfos

+0

@apokryfos您能提供有关可能的问题的更多信息吗? –

+0

问题是,即使记录更新(这意味着它不会返回匹配的记录的实际ID),LAST_INSERT_ID()函数将返回AUTO_INCREMENT值。因此,如果稍后使用LAST_INSERT_ID(),只需确保您正在检查正确的ID。这在页面中提到,它只是很好的指向它。 – apokryfos