• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:osCommerce使用サイトのエラーについて)

osCommerce使用サイトでのエラーについて

このQ&Aのポイント
  • osCommerceを使用して作成したサイトで急にエラーが出るようになりました。エラーメッセージは「1062 - Duplicate entry '1205370033' for key 1」や「for key 3」などです。
  • エラーはアクセス直後や注文・会員登録作業中に発生することがあります。管理画面は正常に動作しており、商品情報の変更もできますが、注文が不安定です。
  • サーバーに相談し、phpMyAdminでのテーブルチェックを試みましたが解決せず、osCommerceの公式メーリングリストでも問題が報告されているようです。全く注文が入らなくなっており、困っています。ご教授いただける方、お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

osCommerceというのは、知りませんが。。。 >1062 - Duplicate entry '1205370033' for key 1 意味としては、primary keyまたはuniqueで一意な値しか許さないようにしているのに、重複する値で更新しようとしてエラーになっています。 >for key 1はfor key 3 になっている時もあります 一つの表でprimary key、uniqueなど、一意性の制約を複数定義している場合、何番目の制約で違反になったかを示す値です。 >サーバーに相談すると >1. phpMyAdminにログイン >2. データベースのテーブル「session」を選択。 ~中略~ >5. 保存するボタンを押します。 >とご指導いただきましたがだめでした これは、session表のsess_id列の値を自動的に生成するという対処です。 今回提示されたエラーメッセージとSQLの対応が合っているなら、whos_online表のtime_last_click列で重複エラーが起こっているように見えます。 あちこちの掲示板やメーリングリストに同じ内容の質問すると、アドバイスしようとする側も、どれが最新の情報か分からなくなったり、既に解決したものがいつまでも回答受付中になっていて、混乱することがあります。 関連するURLを示したり、どちらかは一旦締め切ったり(再質問する場合は、前回質問のNoやURLを提示)といった対応をお願いします。

kamelove22
質問者

補足

chukenkenkou様 お忙しい中回答いただき誠にありがとうございます 詳細なご説明を頂きエラーの意味などよく理解できました 本当にありがとうございました この「教えてgoo」に投稿させていただいたのはサーバーに聞いてもosCommerceメーリングリストに聞いても解決策が得られなかったからです ですので現在他の掲示板等で回答受付中になっているわけでは ありません。どうしたらよいかわからず途方にくれてこちらに質問させて頂いた次第です 質問をさせて頂くまでの過程を補足させてください 1、1062 - Duplicate entry '1205370033' for key 1…のエラーが突然出るようになる(何か設定をいじったりはしておりません) 2、サーバー(カゴヤ)に相談をし「session表のsess_id列の値を自動的に生成する」手順を教えていただく  http://forums.oscommerce.com/index.php?showtopic=218403 3、改善されなかったのでosCommerceメーリングリスト(http://www.bitscope.co.jp/tep/ml.html)に相談をする http://dev.mysql.com/doc/refman/4.1/ja/repair-table.html http://dev.mysql.com/doc/refman/4.1/ja/corrupted-myisam-tables.html  のURLをお教え頂きましたが当方の未熟さゆえどうすればよいかわからず… 再度同じ方が回答を下さり http://lists.sourceforge.jp/mailman/archives/tep-j-general/2008-March/018752.html 上記URLの内容の回答を頂いたので 1. phpMyAdminにログイン 2. osCで使用しているDBを選択 3. 「全てをマーク」 4. 「テーブルをチェックします。」 を実行しエラーが出ている「whos_online」の「エラーを修復する」を試みましたが現状は変わりませんでした サーバーに修復依頼をしましたが代行作業はやっていないとの事で自分で解決策を見つけられずこちらに質問させて頂きました 「whos_online表のtime_last_click列で重複エラー」はどのようにすれば修復できるでしょうか? もう一度osCommerceをインストールしなおしてサイトを作り直すしか方法はないのでしょうか? お忙しい中ご面倒をおかけして本当に申し訳ございませんが 何卒ご教授いただきますようお願い申し上げます

その他の回答 (1)

回答No.2

#1です。 ある程度、状況は分かりました。 今回問題になっている「whos_online」表は、kamelove22さんが自分で表の設計を行ったのではなく、osCommerceをインストールすることで作られる表なのですよね? もし、自分で設計から行った表ならば、重複禁止にすべきキー項目の見直しをしたり、重複禁止の制約自体を外すことも可能です。また、「重複の原因究明」は取りあえず置いておいて、重複の起因となっている行、さらにはその行に関連する他表の行を削除して暫定対策する方法も考えられるでしょう。 ところがサイト側から提供されている表であれば、重複禁止を外したり起因となっている行を削除することで、システムとしての整合性が保てなくなる可能性が高いです。 >のURLをお教え頂きましたが当方の未熟さゆえどうすればよいかわからず… これは、MySQLのMyISAMというタイプテーブルタイプの場合、サーバダウンなどの要因でデータとインデクスが不整合を起こした場合などに有効な修復方法です。 確認ですが、重複エラーが起こっているのは、whos_online表だけですか? もしそうであれば、いつもtime_last_click列の更新でエラーになっている感じですか? つまり、 1062 - Duplicate entry '1205370033' for key 1 update whos_online set customer_id = '', full_name = 'Guest', ip_address = '218.46.206.111', time_last_click = '1205370033', Duplicate entry 'xxxx' のように表示されたとき、 update whos_online set ... time_last_click = 'xxxx' と、xxxxの部分には同じ値が入っていますか? 時刻データのように見えるのですが、一般的には、その列を単一で重複禁止にはしないと思うのですよね。。。瞬間的に複数の更新があると、同一値になってしまう可能性がありますからね。 SQLを入力できる状態で、 show indexes from whos_online と入力すると、どういうインデクスが定義されているか分かるのですが、一応、見てみますか?解決に結びつかない可能性が高いですが、提供されている表定義やツール類が、絶対に誤りがない訳ではないですからね。

kamelove22
質問者

補足

chukenkenkou様 お忙しい中ご丁寧な返信を頂き誠にありがとうございます いざエラーメッセージをチェックしようとすると正常に ページが表示される事が多くなかなかエラーメッセージを確認できず ご返答が遅れて誠にもうしわけございません >Duplicate entry 'xxxx' >のように表示されたとき、 >update whos_online set ... time_last_click = 'xxxx' >と、xxxxの部分には同じ値が入っていますか? これは表示されるたびに数値が変わっています >確認ですが、重複エラーが起こっているのは、whos_online表だけですか? >もしそうであれば、いつもtime_last_click列の更新でエラーになっている感じですか? PHPmyadminで再度エラーチェックをしてみるとproducts_attributesでもエラーが出ました これは以前はなく、whos_onlineだけだったんですが… エラーメッセージは テーブル `products_attributes` のインデックスに問題があります カラム `products_attributes_id` に PRIMARY キーと INDEX キーを両方指定することはできません テーブル `whos_online` のインデックスに問題があります カラム `time_last_click` に PRIMARY キーと INDEX キーを両方指定することはできません INDEX というキーがカラム `time_last_click` に複数作成されました UNIQUE というキーがカラム `time_last_click` に複数作成されました FULLTEXT というキーがカラム `time_last_click` に複数作成されました カラム `session_id` に UNIQUE キーと INDEX キーを両方指定することはできません INDEX というキーがカラム `session_id` に複数作成されました UNIQUE というキーがカラム `session_id` に複数作成されました FULLTEXT というキーがカラム `session_id` に複数作成されました カラム `last_page_url` に UNIQUE キーと INDEX キーを両方指定することはできません INDEX というキーがカラム `last_page_url` に複数作成されました FULLTEXT というキーがカラム `last_page_url` に複数作成されました カラム `time_entry` に UNIQUE キーと INDEX キーを両方指定することはできません UNIQUE というキーがカラム `time_entry` に複数作成されました FULLTEXT というキーがカラム `time_entry` に複数作成されました INDEX というキーがカラム `ip_address` に複数作成されました FULLTEXT というキーがカラム `ip_address` に複数作成されました INDEX というキーがカラム `customer_id` に複数作成されました FULLTEXT というキーがカラム `full_name` に複数作成されました と、これだけたくさんのエラーが出ます どうすれば修正できるでしょうか…? >SQLを入力できる状態で、 >show indexes from whos_online >と入力すると、どういうインデクスが定義されているか分かるのです>が、一応、見てみますか もしよろしければ手順をご指導いただけますでしょうか? ほかに聞ける人がないので甘えさせていただいてばかりで申し訳ございませんがご指導いただきますと幸いです よろしくお願いいたします

関連するQ&A