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

mysql:5924

From: MAO <MAO <mao@xxxxxxxxxx>>
Date: Mon, 05 Aug 2002 19:59:19 +0900
Subject: [mysql 05924] 二重登録を防ぐには?

こんにちは、maoと申します。

現在、ユーザ登録のDBをPHP4.2.2+MySQL3.22.32にて開発しております。

ユーザを登録する際に、
メールアドレスで判断をして、すでに登録されているユーザの場合は
登録させないように下記のように処理をしております。


$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重登録されてしまう場合があります。

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

皆様はどのようにして対応されているのでしょうか?

Maxを使えばトランザクション処理ができる事は調べましたが、
すでにMySQLがインストールされた環境のため、
MySQLの利用が必須になっています。

現在JavaScriptで連続登録ができないようにはしていますが
ユーザ環境により完璧ではありません。
また、UNIQUE (mail)も検討はしていますが、
insert時にSQLのエラーを返すのではなく、
insert前に処理をしたいとおもっております。

以上、よろしくおねがいいたします。

mao[mao@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]