phpのプログラムでMySQLにデータをインサートしているのですが、時々ごくまれにデータが挿入されていないことがあります。テストでは同じ現象が発生しないのでどこに原因があるのかわかりません。手がかりがなく途方にくれています。どこが問題なんでしょうか。また再現できないエラーについてはどのように解決したらいいのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/10/02 14:59:06
  • 終了:2009/10/09 15:00:02

ベストアンサー

id:organic19 No.3

organic19回答回数6ベストアンサー獲得回数12009/10/03 16:50:18

ポイント26pt

質問内容だけだと、どういったプログラムでインサートしているかわかりませんが、

複数のテーブルにインサートした際にロールバックしたり、

同時インサートでロックがかかってしまったりなどが原因かもしれません。


ロールバックする際はその情報をログに残したり、メッセージを吐き出す必要があるかと思います。

可能であれば、インサートしている辺りのプログラムやドライバーなど記述されると、

回答しやすいと思います。

僕はよくPDOを利用していますが、お勧めできるドライバーです。

ロールバックについてはこの辺とか

http://www.php.net/manual/ja/pdo.rollback.php

mysqlのデッドロックはこの辺とか

http://dev.mysql.com/doc/refman/4.1/ja/innodb-deadlocks.html


あまり参考にならない回答ですんません。

id:hiroshimo

なるほど。同時インサートでロックがかかる。そうかもしれません。調べてみます。ありがとうございます。

2009/10/04 06:52:19

その他の回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402009/10/02 15:14:23

ポイント27pt

単にプログラムのバグじゃない?というのが感想だが、

どこが問題なんでしょうか

その情報で分かるわけ無いでしょ。


基本に戻ってログを取る。

取ったログを精査する。

29. PEAR::Logでログ管理 - PHP TIPS:ITpro

MySQL :: MySQL 4.1 リファレンスマニュアル :: 4.10 MySQL ログファイル

それ以外に手はないと思うが。

id:hiroshimo

ですね。ログ調べるしかないですね。つまらない質問すいませんでした。

2009/10/02 15:22:30
id:azuco1975 No.2

azuco1975回答回数613ベストアンサー獲得回数162009/10/02 16:43:50

ポイント27pt

コミット関係の設定がテスト環境と実際の環境とで違うのでは?

プログラムのほうに明示的にコミット命令を書けばどうでしょうか?

http://q.hatena.ne.jp/answer

id:hiroshimo

すいません。コミットというのがよくわかりません・・・。

2009/10/04 06:50:36
id:organic19 No.3

organic19回答回数6ベストアンサー獲得回数12009/10/03 16:50:18ここでベストアンサー

ポイント26pt

質問内容だけだと、どういったプログラムでインサートしているかわかりませんが、

複数のテーブルにインサートした際にロールバックしたり、

同時インサートでロックがかかってしまったりなどが原因かもしれません。


ロールバックする際はその情報をログに残したり、メッセージを吐き出す必要があるかと思います。

可能であれば、インサートしている辺りのプログラムやドライバーなど記述されると、

回答しやすいと思います。

僕はよくPDOを利用していますが、お勧めできるドライバーです。

ロールバックについてはこの辺とか

http://www.php.net/manual/ja/pdo.rollback.php

mysqlのデッドロックはこの辺とか

http://dev.mysql.com/doc/refman/4.1/ja/innodb-deadlocks.html


あまり参考にならない回答ですんません。

id:hiroshimo

なるほど。同時インサートでロックがかかる。そうかもしれません。調べてみます。ありがとうございます。

2009/10/04 06:52:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません