模型很简单我需要从表中删除2行,parcelas表在删除的级联上有外键,关联表没有外键
控制器
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但事务未被提交....
答案 0 :(得分:0)
我不确定为什么trans_status()没有返回,但我会使用Codeigniter数据库助手中的内置帮助器,我们可以尝试进行故障排除:
$this->db->delete($this->tables['parcela'], array("id_parcela" => $id_parcela, "id_dueno" => $id_user));
然后你可以通过添加一些日志记录来测试这个,这样你就可以看到$ this-> db-> affected_rows()正在输出:
var_dump($this->db->affected_rows());
var_dump($this->db->affected_rows() === FALSE);
die();
然后你可以尝试获得正确的价值。另请查看this页面以获取更多详细信息。