次のチュートリアル コラムでは、ThinkPHP データベース操作のクエリ イベント、トランザクション操作、および SQL の監視について紹介します。 #クエリ イベント
##クエリ イベント (V5.0.4)
バージョン 5.0.4 以降、次のようなデータベースの CURD 操作イベントのサポートが追加されました。
クエリ イベントサポートされているのは、検索、選択、挿入、更新、削除のメソッドのみです。#イベントの登録
#次の方法を使用してデータベース クエリ イベントを登録します#Query::event('after_insert','callback');
Query::event('before_select',function($options,$query){ // 事件处理
return $result;
});
トランザクション処理を使用する場合、データベース エンジンがトランザクション処理をサポートする必要があります。たとえば、MySQL の MyISAM はトランザクション処理をサポートしていないため、InnoDB エンジンを使用する必要があります。 トランザクション メソッドを使用してデータベース トランザクションを操作します。例:
トランザクション処理を自動的に制御する## 例外が発生した場合、自動的にロールバックします。#
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(); }
SQL を聞く
データベースのデバッグ モードをオンにすると、次のコマンドを実行できます。 SQL 操作を監視するには、次の方法を使用します: Db::listen(function($sql, $time, $explain){ // 记录SQL
echo $sql. ' ['.$time.'s]'; // 查看性能分析结果
dump($explain);
});
以上がThinkPHP データベース操作クエリ イベント、トランザクション操作、SQL の監視の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。