• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:foreach内でのデータベース登録)

foreach内でのデータベース登録でMDB2 Errorが発生する原因と解決方法

このQ&Aのポイント
  • foreach内でのデータベース登録を行う際に、MDB2 Error: constraint violationというエラーが発生しています。
  • エラーが発生するのは、複数の商品がある場合のみで、単一の商品の場合は正常に動作します。
  • 原因としては、配列のキーが重複しているためにINSERT文生成時にエラーが発生している可能性があります。

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

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

ざっと見てみましたが思いつきません。autoExecuteは使ったことが無いので、そこが不安ですが(^^ゞ で、ユニークキーが無いなら一番目と同じ値を続けてinsert出来ると思いますので試してみてください。それが通れば2番目の値に問題あり。それが通らなければ、autoExecuteの使い方の問題だと思います。 すいません眠いのでボケかましているかも知れません。もう寝ますので申し訳ないです。

dcx147
質問者

お礼

遅くまでお付き合い頂きありがとうございました。 phpに問題があるものかと思っておりずっと眺めてみましたが全く わからずでsqlを見直ししたところauto_incrementの指定こそは ありませんがまさかのPRIMARYKEYの指定がしてありました。 無念です・・・w しかしながら解決に至りましたのでこれにて締め切りとさせて頂きます。 ありがとうございました!

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

「constraint violation」だったら制限違反ですね。 コードを読まずに答えていることをお詫びしておきます。 1.NOT NULLにNULLを入れた。 2.UNIQUEキーなのに同じ値を入れた。 3.PRIMARYキーなのに同じ値を入れた。 あたりが怪しいです。

dcx147
質問者

補足

>コードを読まずに答えていることをお詫びしておきます。 長文なのでお気持ちはわかりますが読んで頂けますと助かりますw >1.NOT NULLにNULLを入れた。 デバッグで確認しましたが全て入っておりました。 >2.UNIQUEキーなのに同じ値を入れた。 >3.PRIMARYキーなのに同じ値を入れた。 これは適用しておりません。 1つであれば問題ないのに2つ以上であればエラーというのが謎です^^;

関連するQ&A