[請益] 關於登錄會員資料的 php寫法
或許這個問題是我多慮了
現在我要設計一個可以新增會員的php網頁
一般而言會有個儲存會員資料的資料表
那麼所謂新增會員資料 增加資料到此資料表中..
且此資料表會有個類似 'userid' 的欄位,
用來紀錄會員id.
假設我寫了一個 insert.php 來負責新增會員資料
當然每個會員id不能重複
所以當insert 一筆新的會員資料到資料表中
假設加入會員id為 'newid'到資料表中..
insert.php會先檢查資料表中是否已存在
欄位'userid' = newid 的資料
若不存在則加入資料..
若已存在'userid'=newid的資料
則代表先前已有人申請過這個id..所以不再insert新的'newid'會員資料
所以我的 insert.php 程式碼應該會分成兩部分
<?php
先檢查
所以我的 insert.php 程式碼應該會分成兩部分
<?php
//先檢查會員id是否已經存在資料表中
query("selecet * forom user where userid='newid'");
//在insert資料
if(row.num==0) insert data;
?>
以上的寫法一般狀況下可以正常運作
但問題在於兩個使用者同時登錄新資料的情形下
假設現在有兩個人同時申請新的會員資料
且會員id均為 'newid'..
問題1:在server端中會同時執行兩個 insert.php
還是兩個insert.php會先後執行?
問題2: 若兩個insert.php同時執行 ,
則可能在第一段檢查手續時同時發現資料庫中沒有
'newid' 這個資料.
使得兩人都通過了檢查,最後一起加入 'newid'到資料庫中
最後造成兩個會員id一樣..
請問要如何避開這種錯誤呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.164.1
推
12/17 13:38, , 1F
12/17 13:38, 1F
推
12/17 16:46, , 2F
12/17 16:46, 2F
→
12/17 16:48, , 3F
12/17 16:48, 3F
→
12/17 16:48, , 4F
12/17 16:48, 4F
→
12/17 16:51, , 5F
12/17 16:51, 5F
推
12/17 19:22, , 6F
12/17 19:22, 6F
推
12/17 20:29, , 7F
12/17 20:29, 7F
推
12/18 14:17, , 8F
12/18 14:17, 8F