gpt4 book ai didi

php - Codeigniter 事务测试失败

转载 作者:行者123 更新时间:2023-11-29 22:08:23 25 4
gpt4 key购买 nike

我是 Codeigniter 的新手,并尝试按照以下官方指南在 MYSQL 数据库上实现 Codeigniter DB 事务

https://www.codeigniter.com/user_guide/database/transactions.html

在指南中,它建议为了启动测试模式,我需要将 TRUE 传递给 trans_start 函数,这应该回滚数据库中的更改,但这不是正在发生。我的查询正在提交。

这是我的代码

$data = array(
'Name' => $this->input->post('name'),
'Address' => $this->input->post('addr'),
'IMEI' => $this->input->post('imei'),
'DOB' => $this->input->post('dob'),
'Maritial_Status' => $this->input->post('m_status'),
'GCM_ID' => $this->input->post('gcm'),
'Mobile' => $this->input->post('mobile'),
'Snap' => $this->input->post('snap')
);

$this->db->trans_start(TRUE);
$this->db->set('CreatedOn','NOW()', FALSE);
$this->db->insert('registered_person', $data);
$Person_ID_FK=$this->db->insert_id();
$data1 = array(
'Person_ID_FK' => $Person_ID_FK,
'Name' => $this->input->post('r_name'),
'Number' => $this->input->post('r_number'),
'Relation' => $this->input->post('relation')
);

$this->db->insert('reg_per_emergency_contact', $data1);
$this->db->set('Person_ID_FK', $Person_ID_FK);
$this->db->insert('location');

$this->db->trans_complete();

if($this->db->trans_status() === FALSE)
{
$resultArray= array('flag'=>10,'status'=>-1);
}
else
{
$resultArray= array('flag'=>10,'status'=>1,'Person_ID'=>$Person_ID_FK);
}
return $resultArray;

附注我的 MYSQL 表正在使用 InnoDB 引擎。

如有任何帮助,我们将不胜感激。提前非常感谢

最佳答案

这个问题之前就存在并且已修复。您可以通过提供此问题的日志来做出贡献[1]。为了存档您的目的,您可以使用替代方法。

    if($this->db->trans_status() === FALSE)
{
$resultArray= array('flag'=>10,'status'=>-1);
}
else
{
$resultArray= array('flag'=>10,'status'=>1,'Person_ID'=>$Person_ID_FK);
}
$this->db->trans_rollback(); //Rollback. This will remove your data from the database.
return $resultArray;

不建议将 $this->db->trans_off() 与替代方案一起使用。

[1]。 https://github.com/bcit-ci/CodeIgniter/issues/5

关于php - Codeigniter 事务测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31933871/

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