Php Trans_状态代码点火器
你好 我在模型中有trans_start-trans_completePhp Trans_状态代码点火器,php,codeigniter,Php,Codeigniter,你好 我在模型中有trans_start-trans_complete public function insert_user($name, $desc) { $this->db->trans_start(TRUE); $this->db->set('Name', $name); $this->db->set('Desc', $desc); $this->db->insert('user'); $id = $this->db->inse
public function insert_user($name, $desc)
{
$this->db->trans_start(TRUE);
$this->db->set('Name', $name);
$this->db->set('Desc', $desc);
$this->db->insert('user');
$id = $this->db->insert_id();
$this->db->trans_complete();
return $id;
我想知道如果trans_status===TRUE
是否可能,那么它将转到另一个类似这样的模型:
if ($this->db->trans_status() === TRUE)
{
insert_access($get);
}
这就是模型:
public function insert_access($get)
{
$data = $this->input->post('pTableData');
$tableData = json_decode($data,TRUE);
foreach ($tableData as $get)
{
$this->db->set('UserID', $id);
$this->db->set('AccessName', $get['accessName']);
$this->db->set('Password', $get['password']);
$this->db->insert('access');
$id_access = $this->db->insert_id();
return $id_access ;
}
}
并在
函数insert\u user($name,$desc)
中获取return$id
,这样我就可以在集合中的函数insert\u access($get)
中使用它代码>这应该像你说的那样起作用:
$id = $this->db->insert_id();
if ($this->db->trans_status() === TRUE)
{
$this->insert_access($id); //if in the same model
$this->another_model->insert_access($id); //if some other model
}
但是,我在您的函数中看到,insert\u access($get)
,您已经使用,$data=$this->input->post('pTableData')代码>,顺便说一句,这是不可能的,因为您直接从另一个模型函数调用此函数。
要使其正常工作,您可以将post数据
从insert\u用户
功能发送到insert\u访问
功能。谢谢!我只需要弄清楚post dat的情况!:)我只有一个问题。即使我的trans_start-trans_complete在模型中,是否允许将trans_状态置于控制器中?更好的是,从模型if true返回if到控制器或返回0,检查控制器中的返回值,并使用post数据和返回的id
调用插入访问
。