実行すると「すべて問題ありません!」というメッセージが表示されます。 ただし、実際にはデータベースには何も保存されません。 コードは数か月間変更せずに実行されています。 昨日突然動かなくなりました。
1 時間のデバッグ後、操作が適切に動作していることを確認でき、挿入するレコードの ID を含む中間結果を「エコー」できます。ただし、最終送信後はデータベースには何も保存されません。
トランザクションを削除すると、コードは機能し、トランザクションの場合と同様に、すべてがデータベースに保存されます。
変更の整合性を確認し、トランザクション内に戻りたいと考えています。 または、少なくとも、どのコード (またはデータベースの状態など) がデータの保存を妨げているのか、トランザクションがコミットできなかったために例外が発生せず「エラー」がエコーされる理由を理解したいと考えています。
トランザクションのコミット (実際にはデータベースへの書き込み) が失敗した場合、commit() メソッドは例外をスローすると確信していましたが、そうではありませんでした。入手する方法はありますか?
###事前にどうもありがとうございました。P粉7153042392024-03-31 09:04:28
問題はコードにあります。 ありがとう、@Michal Hynčica、あなたは本当に正しいです。 次のような部分があります:
リーリー Continue;
if
: の前に
$tx->commit();