【发布时间】:2017-08-12 06:14:37
【问题描述】:
我有一个查询应该返回如下错误消息:
Error Number: 1451
Cannot delete or update a parent row: a foreign key constraint fails (`sservice_dev_mercury`.`agent_accounts`, CONSTRAINT `agent_role_fk` FOREIGN KEY (`role`) REFERENCES `roles` (`id`))
DELETE FROM `roles` WHERE `id` = '3'
此时db_debug 为真。当我把它变成假并使用时
$error = $this->db->error();
return $error;
我收到错误 0 并显示一条空消息。尝试获取错误时我缺少什么吗?这是查询:
public function delete($id){
$this->db->trans_begin();
$this->db->where('id',$id);
$this->db->delete($this->table);
$this->db->trans_complete();
if($this->db->trans_status()===false){
$this->db->trans_rollback();
$error = $this->db->error();
return $error;
}else{
$this->db->trans_commit();
return true;
}
}
有人可以看看有什么问题吗?
【问题讨论】:
-
问题在于数据库表的关系。您能否发布两个表的架构并告诉我们其中一个是
$this->table。 -
哦。我知道它的桌子问题。我只是希望这个错误以消息的形式出现,而不是占据整个页面。我是故意这样设置的。
-
您应该根据自己的需要自定义this method。由于行659,返回零。当然,您应该在不更改系统文件的情况下扩展类。也许你可以试试这种方式。
-
嗨!感谢回复。如何扩展它?
-
阅读docs and this full page,(尤其是this section)。
标签: php codeigniter mysqli transactions