ホームページ  >  に質問  >  本文

Yii2 Mariadb トランザクションは正常に送信されましたが、データはデータベースに保存されません。

###私はコードをもっている:### リーリー

実行すると「すべて問題ありません!」というメッセージが表示されます。 ただし、実際にはデータベースには何も保存されません。 コードは数か月間変更せずに実行されています。 昨日突然動かなくなりました。

1 時間のデバッグ後、操作が適切に動作していることを確認でき、挿入するレコードの ID を含む中間結果を「エコー」できます。ただし、最終送信後はデータベースには何も保存されません。

トランザクションを削除すると、コードは機能し、トランザクションの場合と同様に、すべてがデータベースに保存されます。

変更の整合性を確認し、トランザクション内に戻りたいと考えています。 または、少なくとも、どのコード (またはデータベースの状態など) がデータの保存を妨げているのか、トランザクションがコミットできなかったために例外が発生せず「エラー」がエコーされる理由を理解したいと考えています。

トランザクションのコミット (実際にはデータベースへの書き込み) が失敗した場合、commit() メソッドは例外をスローすると確信していましたが、そうではありませんでした。入手する方法はありますか?

###事前にどうもありがとうございました。

P粉386318086P粉386318086226日前458

全員に返信(1)返信します

  • P粉715304239

    P粉7153042392024-03-31 09:04:28

    問題はコードにあります。 ありがとう、@Michal Hynčica、あなたは本当に正しいです。 次のような部分があります:

    リーリー

    Continue; if: の前に $tx->commit();

    を追加することで、このまれな問題を解決しました。 リーリー

    返事
    0
  • キャンセル返事