人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: hiroshimo
●カテゴリ:ウェブ制作
✍キーワード:MySQL PHP エラー テスト データ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●27ポイント

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

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

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


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

取ったログを精査する。

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

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

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

◎質問者からの返答

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


2 ● azuco1975
●27ポイント

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

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

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

◎質問者からの返答

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


3 ● organic19
●26ポイント ベストアンサー

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

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

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


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

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

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

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

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

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

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

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


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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ