ThinkPHP5 でのトランザクション操作
Jan 30, 2020 pm 10:49 PMトランザクション処理を使用する場合、データベース エンジンはトランザクション処理をサポートする必要があります。たとえば、MySQL の MyISAM はトランザクション処理をサポートしていないため、InnoDB エンジンを使用する必要があります。
ThinkPHP5.0
トランザクション メソッドを使用してデータベース トランザクションを操作します。例外が発生すると、自動的にロールバックされます。例:
トランザクションを自動的に制御する処理
Db::transaction(function(){ Db::table('think_user')->find(1); Db::table('think_user')->delete(1);});
たとえば、トランザクションを手動で制御することもできます。
// 启动事务Db::startTrans();try{ Db::table('think_user')->find(1); Db::table('think_user')->delete(1); // 提交事务 Db::commit(); } catch (\Exception $e) { // 回滚事务 Db::rollback();}
ThinkPHP5.1
最も簡単な方法は、トランザクション メソッドを使用してデータベース トランザクションを操作します。クロージャ内のコードが実行されると、例外が自動的にロールバックされます。例:
Db::transaction(function () { Db::table('think_user')->find(1); Db::table('think_user')->delete(1);});
トランザクションを手動で制御することもできます。例:
// 启动事务Db::startTrans();try { Db::table('think_user')->find(1); Db::table('think_user')->delete(1); // 提交事务 Db::commit();} catch (\Exception $e) { // 回滚事务 Db::rollback();}
トランザクション中は次の点に注意してください。操作を行う場合は、データベース接続が同じ接続を使用していることを確認してください。
V5.1.13 以降、MySQL の XA トランザクションをサポートしてグローバル (分散) トランザクションを実装できるようになりました。使用できるのは:
Db::transactionXa(function () { Db::connect('db1')->table('think_user')->delete(1); Db::connect('db2')->table('think_user')->delete(1);}, [Db::connect('db1'),Db::connect('db2')]);
データ テーブル エンジンが InnoDB であることを確認し、XA トランザクションを有効にするサポート。
以上がThinkPHP5 でのトランザクション操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ThinkPhpによって開発されたソフトウェアのインストール方法チュートリアルをインストールする方法

thinkphpの脆弱性を修正する方法thinkphpの脆弱性に対処する方法

ThinkPhpを使用してコマンドラインアプリケーションを構築するにはどうすればよいですか?

サーバーレスアーキテクチャでThinkPhpを使用するための重要な考慮事項は何ですか?
