【问题标题】:PHP Codeigniter 3 Query Builder Get ResultPHP Codeigniter 3 查询生成器获取结果
【发布时间】:2021-07-08 20:03:26
【问题描述】:

我对 PHP(以及 Codeigniter)非常陌生。我正在尝试使用 codeigniter 构建一个小型 Web 应用程序,但我遇到了以下情况。

  • 我正在使用 Codeigniter 3 和 Bootstrap 3
  • 我正在使用 Codeigniter 的查询生成器类从数据库中删除项目
  • 我在数据库中有两个名为 moviecategory 的表
  • 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


    【解决方案1】:

    好的,我在搜索错误代码后发现了一个非常非常简单的soultion。

    我只是在 config 文件夹中的 database.php 文件中将 'db_debug' 设置为 FALSE,然后错误消失了。屏幕上还会显示失败的消息。

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 2016-07-05
      • 1970-01-01
      • 2017-05-22
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多