我有两个表产品和购买。
我在on delete restrict
列中设置product.purchase_id
FK,其中purchase.purchase_id
列。然后,如果我尝试用FK删除product.product_id,它会显示错误,就像
A Database Error Occurred Error Number: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`another_bata`.`product_purchase_item`, CONSTRAINT `FK_product_purchase_item_1` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`) ON UPDATE CASCADE) delete from product where product_id='158' Filename: C:\xampp\htdocs\rima_shoe\system\database\DB_driver.php Line Number: 330
但我只想提醒一下。所以我只是尝试try...catch
语法我的代码就在这里
try{
$this->db->query("delete from product where product_id='$delete'");
}
catch (Exception $e) {
echo "an error occured during query" ;
}
但是这段代码不起作用。它还会在白页中显示以上错误...
答案 0 :(得分:4)
参考Codeigniter foreign key constraint check
在database.php文件中找到行
<input type="text" name="name" class="txtbox" />
并将其设置为FALSE。这将阻止Codeigniter在屏幕上打印错误。
同样在删除功能中,您可以查看:
$db['default']['db_debug']
如果发生这种情况,你需要做一些特别的事情。
编辑请记住,在Codeigniter 3.0(CI3)中,现在是$ errors = $ this-&gt; db-&gt; error();
答案 1 :(得分:3)
codeigniter查询不会抛出异常。而是用它来判断是否发生了错误。
if ($this->db->_error_message()){
$msg = $this->db->_error_message();
echo $msg;
}
简单就是那个