質問 > フロント機能 > 独自フォームから会員登録処理 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
waterfall |
投稿日時: 2011/10/3 21:09
対応状況: −−−
|
新米 登録日: 2011/9/29 居住地: 投稿: 7 |
独自フォームから会員登録処理 [EC-CUBE]2.11.2
[PHP]5.2.5 [データベース]mysql5.1.22 [WEBサーバ]apache 独自で作成したフォームから会員登録(dtb_customerへ追加)をしたいと思っております。 ※EC-CUBE内でのテンプレート追加・カスタマイズは行わないことが前提です。 作成を進めているのですが、Insert実行時に下記エラーが発生してしまいます。 Duplicate entry '**' for key 'PRIMARY' dtb_customerのPRIMARY keyはcustomer_idだと思うのですがphpMyAdminで確認する限り、'**'に表示されているcustomer_idは重複していません。 試しにphpMyAdminで、上記重複エラーが出ているSQL文を実行した場合は、問題なく処理が完了しました。 このような現象が起こる原因としては、どのような事が考えられますでしょうか? どうぞ宜しくお願いいたします。 |
yukikaze |
投稿日時: 2011/10/4 9:25
対応状況: −−−
|
長老 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 独自フォームから会員登録処理 お力にはなれないかもしれませんが…
PGに記載されているInsert文を教えて頂くことはできますでしょうか? |
waterfall |
投稿日時: 2011/10/4 17:28
対応状況: −−−
|
新米 登録日: 2011/9/29 居住地: 投稿: 7 |
Re: 独自フォームから会員登録処理 PGのInsert文は下記の通りです。
Insert into dtb_customer (customer_id,name01,name02,kana01,kana02,zip01,zip02,pref,addr01,addr02,email,tel01,tel02,tel03,fax01,fax02,fax03,sex,password,reminder,reminder_answer,salt,secret_key,status,mailmaga_flg) values ('**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','**','2','**') 通常の会員登録の項目ではなく、必要な項目のみ追加をしています。 '**'はフォームに入力された値、又はEC-CUBEの仕様に合わせて生成した値が入ります。 customer_idは重複しないように、既に入っているデータの最高値に+1しています。 |
yukikaze |
投稿日時: 2011/10/4 17:33
対応状況: −−−
|
長老 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 独自フォームから会員登録処理 動作確認はしてませんが!
customer_id[Field]は auto_increment が設定されてますよね? Insert文から customer_id[Field] を省略されてみては? |
waterfall |
投稿日時: 2011/10/4 20:33
対応状況: −−−
|
新米 登録日: 2011/9/29 居住地: 投稿: 7 |
Re: 独自フォームから会員登録処理 以前のバージョンでは、auto_incrementが設定されていましたが、2.11では設定されない仕様のようです。
※customer_idの番号は、dtb_customer_customer_id_seqテーブルで管理されています。 上記により、customer_id[Field] を省略すると0が入ってしまい同様のエラーが発生します。 書き忘れていましたが、customer_idにはどの数字を入れても重複エラーが発生してしまいます。 Duplicate entry '**' for key 'PRIMARY' は、 単純な重複エラー以外でも発生する可能性はあるのでしょうか? |
yukikaze |
投稿日時: 2011/10/5 9:27
対応状況: −−−
|
長老 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 独自フォームから会員登録処理 Ver2.11では、dtb_customer.customer_id には auto_increment は設定されていないんですね。
勉強不足で申し訳ありません。 ソースだけから判断すると、dtb_customer_customer_id_seq[TBL]に auto_increment が設定されていて、そこに空データを Install し 'SELECT LAST_INSERT_ID()' で auto_increment の値を取得しているんですね。 SC_Helper_Customer.php で dtb_customer_customer_id_seq[TBL] の nextVal と dtb_customer[TBL] への Insert をしているので、間にDebug文+Exit を追加して、処理がどこまで正常かを見ていくしかないかなぁ? もはやInsert2回やってない?くらいの発想しかでてきません。 ホント、勉強不足で申し訳ありません。 かき回しただけで終わった…かも。すみません。 |
waterfall |
投稿日時: 2011/10/5 11:36
対応状況: −−−
|
新米 登録日: 2011/9/29 居住地: 投稿: 7 |
Re: 独自フォームから会員登録処理 yukikaze様、ありがとうございます。
ひとまず処理がどこまで正常なのか見ていこうと思います。 お手数おかけいたしました。 |
yukikaze |
投稿日時: 2011/10/5 11:45
対応状況: −−−
|
長老 登録日: 2011/7/26 居住地: 投稿: 196 |
Re: 独自フォームから会員登録処理 役立たずでスミマセンでした。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |