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]