【发布时间】:2021-07-08 20:03:26
【问题描述】:
我对 PHP(以及 Codeigniter)非常陌生。我正在尝试使用 codeigniter 构建一个小型 Web 应用程序,但我遇到了以下情况。
- 我正在使用 Codeigniter 3 和 Bootstrap 3
- 我正在使用 Codeigniter 的查询生成器类从数据库中删除项目
- 我在数据库中有两个名为 movie 和 category 的表
- movie 有一个名为 category_id 的列,其中包含对 category 表的主键 category_id 的外键引用,约束为“ON DELETE RESTRICT"
现在如果我想删除这样一个引用 movie 表的类别,那么 DELETE 操作将失败,这是正常的。但我在 PHP 中处理此类错误时遇到问题。
这是我删除查询的 PHP Codeigniter 代码。
public function deleteCategory()
{
if (isset($_POST['cat-id'])) {
$result = $this->db->delete('category', array('category_id' => $_POST['cat-id']));
if ($result) {
var_dump("Deleted Successfully");
} else {
var_dump("Failed To Delete");
}
}
}
当没有外键约束时,此代码可以正常工作。但是当有外键约束时会显示如下错误
错误号:1451
无法删除或更新父行:外键约束失败 (
demoapp.movie,约束server_ibfk_1外键 (category_id) 参考资料category(category_id))从
category删除category_id= '1'文件名:C:/xampp/htdocs/demoapp/system/database/DB_driver.php
行号:691
我遵循了其他 stackoverflow 回答的几个建议,但对我没有用。
那么,我的问题是如何在 Codeigniter 中处理这种情况?此外,了解如何处理 Codeigniter 的其他查询构建类错误也会很有帮助。
提前致谢。
【问题讨论】:
标签: php mysql codeigniter