2016-11-08 76 views
0

我正在使用codeigniter,我想要从文件夹中删除文件并从数据库中删除相关数据。但是如何确保两者都能成功完成,否则它们都不会发生。如何确保已从文件夹中删除文件以及从codeigniter中的数据库中删除的相关数据

下面的代码是我对它的方法,但我担心的情况就是,文件成功删除,但由于某种原因,数据库操作不成功。有没有更好的方法呢?

if(unlink($path)){ 
    $this->admin_model->delete_data($id,$db); 

} 

回答

0

对不起,我的答案,但我的exp与CI一起工作了5个月。我会用这个方法: 首先,功能delete_data($ ID,$ DB)必须返回一个effective_rows,如:

public function delete_data($id,$db) 
{ 
    // your code delete 
    return $this->db->affected_rows(); 
} 

然后编辑你的代码一点点:

if($this->admin_model->delete_data($id,$db) > 0) 
{ 
    if(unlink($path)) { 
    return true; 
    }else{ 
    return false; 
    } 
} 

希望它有帮助。对不起,我的英语不好。

+0

谢谢你的回答,这是有帮助的。 – Neloy

+0

那么你的代码可以确保在数据删除不成功时不会发生unlink()....但是如果删除数据是成功的,那么出于某种原因unlink()不起作用?我的问题是如何确保两者都会发生或者没有发生。 – Neloy

+0

我看到了,如果你可以使用'if(unlink($ path)&& $ this-> admin_model-> delete_data($ id,$ db)> 0)'来确认其中的2个。所以如果没有,你可以搜索'回滚MySQL',如果取消链接不工作。 –