バグ報告 > フロント機能 > トランザクション処理を組み込むとエラーが二重に |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
acehikaru |
投稿日時: 2008/7/3 16:29
対応状況: −−−
|
半人前 登録日: 2008/6/25 居住地: 投稿: 18 |
トランザクション処理を組み込むとエラーが二重に 何をいってるかわからないかも知れないですが、そのままの現象を書きます。
会員登録処理で同時に他のテーブル(DB)にも書き込みたいと思い、トランザクション処理の確認をしたときの話です。 /data/class/pages/entry/LC_Page_Entry.php の「lfRegistData()」にあたる箇所で既にBEGINなどの処理が組み込まれているので、 このBEGINからCOMMITまでにあるインサートSQLが失敗した場合を想定して、以下のようにわざとエラーが出るように変更してみました。
を
これで実行したところ、 「システムエラーです」の画面がでるのは良いのですが、 なぜか二重に表示されます。 <HTML>〜<HTML>のソースが二重に出力されました。 ログを見ると、 どうやらクエリ実行のタイミングで一度エラーページを出力していますが、クエリがエラーになると以降の処理が全て無視されるようで、 トランザクションが正しく終了していないというエラーのため、もう一度エラーページを出力。 となっているようです。 この仕様だとROLLBACKできないのでトランザクションの意味がないと思うのですが… 説明がうまくできないんですが、会員登録時のエラー処理がおかしいのでは?という話です。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» トランザクション処理を組み込むとエラーが二重に | acehikaru | 2008/7/3 16:29 |
Re: トランザクション処理を組み込むとエラーが二重に | seasoft | 2008/7/3 21:25 |
Re: トランザクション処理を組み込むとエラーが二重に | acehikaru | 2008/7/4 12:51 |