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();

後藤隼人
ウェブサイト制作・ウェブアプリ開発やマーケティングをしています。
GitHub

お知らせ

大阪大学医学部附属病院さんで現在クラウドファンディングのプロジェクトをされています(後藤も少しだけ寄附させていただきました)。
© 2020 gotohayato.com
サイトについてタグアーカイブメッセージを送る