使用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