Php mysql事务未提交Codeigniter 3
模型很简单,我需要从表中删除2行,parcelas表在已删除的级联上有外键,assoc表没有外键 控制器Php mysql事务未提交Codeigniter 3,php,mysql,codeigniter-3,Php,Mysql,Codeigniter 3,模型很简单,我需要从表中删除2行,parcelas表在已删除的级联上有外键,assoc表没有外键 控制器 if($this->delete_model->delete_parcela_model($this->input->post('id_parcela_delete'),$this->input->post('id_loteo_delete'),$this->input->post('id_user_delete'))) {
if($this->delete_model->delete_parcela_model($this->input->post('id_parcela_delete'),$this->input->post('id_loteo_delete'),$this->input->post('id_user_delete')))
{
echo 'deleted';
exit(1);
}
else
{
echo 'error';
exit(1);
}
模型中的函数调用是
function delete_parcela_model($id_parcela,$id_pago,$id_user)
{
$this->db->trans_begin();
$this->db->query('delete from parcela where id_parcela = "'.$id_parcela.'" and id_dueno = "'.$id_user.'"');
$this->db->query('delete from es_dueno_assoc where tipo_dueno_id = "'.$id_parcela.'" and user_id = "'.$id_user.'"');
if ($this->db->trans_status() === FALSE)
{
// generate an error... or use the log_message() function to log your error
$this->db->trans_rollback();
return false;
}
else
{
$this->db->trans_commit();
return true;
}
始终返回true,但事务未提交….我不确定trans_status()为什么没有返回,但我会像这样使用Codeigniter数据库帮助程序中的内置帮助程序,我们可以尝试并排除故障:
$this->db->delete($this->tables['parcela'], array("id_parcela" => $id_parcela, "id_dueno" => $id_user));
然后,您可以通过添加一些日志来查看测试,这样您就可以看到$this->db->impacted_rows()输出了什么:
var_dump($this->db->affected_rows());
var_dump($this->db->affected_rows() === FALSE);
die();
然后您可以尝试获取正确的值。另请查看页面了解更多详细信息