別々のモデルと 1 つの「トランザクション」を持つことは可能ですか。タグ付きの投稿を挿入したい。タグと投稿は 2 つの別々のモデルにあります。トランザクションでそれを処理するにはどうすればよいですか? (以下のように:)
$this->db->trans_start();
$this->post_model->insert('...');
$this->tags_model->insert('...');
$this->db->trans_complete();
別々のモデルと 1 つの「トランザクション」を持つことは可能ですか。タグ付きの投稿を挿入したい。タグと投稿は 2 つの別々のモデルにあります。トランザクションでそれを処理するにはどうすればよいですか? (以下のように:)
$this->db->trans_start();
$this->post_model->insert('...');
$this->tags_model->insert('...');
$this->db->trans_complete();
モデル メソッドに他のトランザクション ステートメントがない限り、サンプル コードは正常に動作するはずです。
ドキュメントに従って、に渡すことでテストできTRUE
ます$this->db->trans_start()
:
$this->db->trans_start(TRUE);
// Queries/model calls
$this->db->trans_complete();
if($this->db->trans_status() === FALSE)
{
// do something if it fails
}
に渡すTRUE
とtrans_start()
、完了時にトランザクションが自動的にロールバックされます。テーブルの auto_increment 値をチェックして (該当する場合)、トランザクションが機能したかどうかを確認できるはずです。