[前][次][番号順一覧][スレッド一覧]

mysql:5925

From: "Yuya.Nishida." <"Yuya.Nishida." <yuya@xxxxxxxxxx>>
Date: Mon, 05 Aug 2002 20:17:29 +0900
Subject: [mysql 05925] Re: 二重登録を防ぐには?

雄也と申します.

> $SQL = "select mail from user_tbl where mail = $email";
ロックをかける
> $result = mysql_query($SQL,$ConnectID);
> if ($result1 == FALSE){
> 	$ErrMSG .= "データの取得に失敗しました<BR>";
> }else{
> 	if($row = mysql_fetch_array($result)){
> 		$ErrMSG .= "すでにこのメールアドレスは登録されています<BR>";
> 	}else{
> 		$SQL = "insert into user_tbl ....... ";#省略
> 		$result = mysql_query($SQL,$ConnectID);
> 	}
> }
ロックを解除する
> しかし、上記のような処理をしても、登録ボタンの連続クリックなどを
> された場合に、2重登録されてしまう場合があります。

最初の部分でロックをかけ,
処理が終わってからロックを解除することで解決できます.
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Reference.html#LOCK_TABLES
シンプルな解決方法だと思います.

> オラクルで開発を行っていたときは、トランザクション処理を
> 利用していたのですが、MySQLにはトランザクション処理ないと聞いています。

テーブルによるようです.以下をどうぞ.
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Reference.html#COMMIT

---
Yuya.Nishida.
yuya@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]

      5924 2002-08-05 19:59 [MAO <mao@xxxxxxxxxx>] 二重登録を防ぐには?                    
->    5925 2002-08-05 20:17 ┗["Yuya.Nishida." <yuy]                                       
      5927 2002-08-06 09:58  ┗[MAO <mao@xxxxxxxxxx>]                                     
      5928 2002-08-06 18:43   ┗["Hiroaki,Sakuma" <sa]