gpt4 book ai didi

database - 将 dbforge 与 PyroCMS(基于 CI 的 CMS)一起使用时出现问题

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:49 24 4
gpt4 key购买 nike

我使用 PyroCMS 和 CI 已经有一段时间了,并且非常喜欢它。

我正在扩展一个数据库模块,该模块将允许管理员用户管理数据库,而无需使用 phpMyAdmin 之类的东西。

然而,我唯一能够开始工作的是浏览表的字段值(即“SELECT * FROM 'table_name'”)。

我想包含更多功能,但我似乎无法让 dbforge 正常工作。我知道它已加载,因为 dbforge 用于卸载模块。从中调用函数时我也没有收到任何错误。

这是我在 Controller 中的代码示例(dbforge 已加载)。

public function drop($table_name)
{
$table_name = $this->uri->segment(4);
$this->dbforge->drop_table($table_name);
redirect('admin/database/tables');
}

假设函数是从这个 url 调用的:

.../admin/database/drop/table_name

它似乎有效...但它只是重定向到表格概览。

有什么我想念的吗? [$this->dbforge->drop_table($table_name);] 不应该总是删除一个表(给定 $table_name 是有效的)吗?

编辑

作为解决方法,我可以使用:

public function drop($table_name)
{
$table_name = $this->uri->segment(4);
//$this->dbforge->drop_table($table_name);
$this->db->query("DROP TABLE ".$table_name);
redirect('admin/database/tables');
return TRUE;
}

我真的很想使用 DB forge,但是...

最佳答案

我认为您可能对 PyroCMS 1.3.x 中的站点前缀感到有点困惑。

默认情况下,Community 和 Professional 的所有安装都将 default_ 作为第一个站点中所有表的前缀。如果您有 Professional,您可以添加新站点,并且站点引用将是任何_而不是默认值_

此前缀由 dbforge 负责,因此当您要删除 default_blog 时,只需删除:

/admin/database/drop/blog

此外,为什么您接受 $table_name 作为参数然后用 uri 段覆盖它?

此外,为什么您接受 $table_name 作为参数然后用 uri 段覆盖它?

看到我在那里做了什么吗? xD

public function drop($table_name)
{
$this->dbforge->drop_table($table_name);
redirect('admin/database/tables');
}

关于database - 将 dbforge 与 PyroCMS(基于 CI 的 CMS)一起使用时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7813073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com