gotohayato.com

月(ダークモード)
太陽(ライトモード)

Drupal 7 で DB トランザクションを明示的にコミットする方法

Drupal 7

Drupal 7 で DB トランザクションを明示的にコミットする方法について。

Drupal では使用している DB がトランザクションをサポートしている場合は db_transaction() 関数でトランザクションを開始することができます。そして、ロールバックや例外などが発生しないかぎり一連の処理が終了して関数のスコープを抜けるときに自動的にトランザクションがコミットされます。

この自動コミットの仕組みに任せるのではなく、意図的に所定の場所でコミットしたい場合には次のようにすると OK です。 unset() の後に DB 関係の例外が発生しても unset() までの部分はコミット済みとなります。

$transaction = db_transaction();
// DB 変更処理
// トランザクションを明示的にコミット
unset($transaction);
throw new TransactionException();

後藤隼人 (ごとうはやと)

ウェブ制作・開発やマーケティング、プロジェクト支援などをしています。

GitHubPython

お知らせ

児童養護施設の「守山学園」さんが 2021/02/03 まで 建物改築のためのクラウドファンディング をされています。ご興味のある方はご覧になってみてください(後藤も少しだけ寄付させていただきました)。
© 2021 gotohayato.com
サイトについてタグアーカイブメッセージを送る