我使用以下方法为joomla创建了一个扩展名:
$id=$database->insertid();
我刚刚介绍过,如果两个用户登录到该站点将合在一起执行数据库中的两个记录,那么此语句将在两种情况下返回相同的值。 在php中,您可以通过事务解决此问题。
在joomla中我该如何解决这个问题?
答案 0 :(得分:1)
如果你有一个正在使用的表,那就扩展了JTable,那么请确保你包含了可选择作为其中一部分的签出功能。这必须意味着添加几个字段,如内容表中的内容。这将阻止两个人同时编辑同一行,这会产生竞争条件,其中一个人将丢失其数据。
答案 1 :(得分:0)
请注意,php和joomla函数都返回最后一个插入id依赖于mysql实现,而mysql返回最后一个id 插入当前打开的连接所以并发不是问题
答案 2 :(得分:0)
@ iacoposk8你说得对,很可能在后面的情况下。这样的时间尝试在您的SQL查询或任何地方添加当前登录的用户ID,以便它不会产生任何混淆。我希望你能得到我想说的话。感谢