使用PHP和MySQL我想使用PARENT和多子关系来跟踪注册。 如果超过1个用户尝试使用相同的父代码注册,则会出现问题。该家长只会被记入1个用户而不是2个。 解决方案据我所知是LOCK记录。或者使用服务器时间和记录时间戳确定上次更新。使多个用户同时更新到同一记录
#THIS IS NOT PRODUCTION CODE, BUT JUST INTENDED TO DEFINE MY PROCESS
#PLEASE ADVISE AND MAKE ADJUSTMENTS AS YOU SEE FIT
$sqlget = SELCT * record of PARENT and WHERE id is of PARENT
$ts -> timestamp;
$st -> servertime;
$af -> aff_number;
现在我要检查父, 如果更新的发生的时间戳的最后一条记录更新不到10秒AGO - 我想重新运行我$ sqlget
如何转换$ ts转换为INT并将$ st转换为INT,以便我可以运行IF语句 以循环$ sqlget如果我的条件失败。
if($ts <= $st by 10 seconds) { wait 10 seconds and rerun sqlget }
else { get current $af (INT) and +1; UPDATE record; close connection;
META-refresh to next page; }
那么这个过程似乎功能?这是否会确保即使超过1个孩子同时签署了每个孩子注册,也会正确记录一个父母? 我不希望多人同时注册,但他们可能会发生,我必须确保父母正确记分。
“PARENT”记录如何在每个“CHILD”注册时记入? – eggyal
“父母”的ID在单独的桌子上记录到“孩子”。这个表的目的是保留一个“Parant”子元素的数量。 – fyz
那么,为什么不按照需要选择parent_id,COUNT(*)FROM子GROUP BY parent_id'呢?或者根据需要更新父项SET子项=子项+ 1项WHERE parent_id =?',这将以原子方式执行(并发会话无法干涉)。 – eggyal