gpt4 book ai didi

codeigniter - 使用 CodeIgniter 对多个模型函数进行单次交易

转载 作者:行者123 更新时间:2023-12-04 19:03:03 24 4
gpt4 key购买 nike

如果在插入要回滚已提交查询的任何表时出现任何问题,我需要插入 2 个表。

我在 Controller 内写了查询
例如:

   $this->db->trans_start();
$this->db->insert_batch('market_users_mapping', $marketData);
$this->db->insert_batch('maincategory_users_mapping', $maincategoryData);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw error
}

这完美地工作。但我认为在 Controller 中编写查询并不是一个好习惯。所以我这样做了,称为模型函数,我在各自的模型函数中编写了那些 insert_batch 查询。
$this->db->trans_start();
$this->maincategory_model->function_name()
$this->market_model->function_name();
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw error
`enter code here`
}

但这并没有按预期工作

最佳答案

您在这些示例中更改了有关名称的查询位置,以防万一。我认为您不能在不同方法之间绑定(bind)交易(您的第二个示例)。但是您可以并且应该将与数据库相关的代码设置为模型。

所以在模型中进行这些查询:

// controller code
$this->db->trans_start();
$this->maincategory_model->first_function($maincategoryData);
$this->market_model->second_function($marketData);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
throw error
`enter code here`
}


// Maincategory_model code

public function first_function($maincategoryData)
{
return $this->db->insert_batch('maincategory_users_mapping', $maincategoryData);
}

// Market_model code

public function second_function($marketData)
{
return $this->db->insert_batch('market_users_mapping', $marketData);
}

关于codeigniter - 使用 CodeIgniter 对多个模型函数进行单次交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com