首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyroCMS (基于CI的CMS)中使用dbforge时遇到问题

在PyroCMS (基于CI的CMS)中使用dbforge时遇到问题
EN

Stack Overflow用户
提问于 2011-10-19 04:10:24
回答 1查看 384关注 0票数 1

我使用PyroCMS和CI已经有一段时间了,我真的很喜欢它。

我正在扩展一个数据库模块,将允许管理员用户管理一个数据库,而不必使用像phpMyAdmin这样的东西。

然而,我唯一能做的就是浏览表的字段值(即'SELECT * FROM 'table_name')。

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

下面是我在控制器中编写的代码示例(dbforge已经加载)。

代码语言:javascript
复制
public function drop($table_name)
{
    $table_name = $this->uri->segment(4);
    $this->dbforge->drop_table($table_name);
    redirect('admin/database/tables');
}

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

代码语言:javascript
复制
.../admin/database/drop/table_name

它似乎起作用了..。但是相反,它只是重定向到表概述。

我是不是漏掉了什么?如果$table_name是有效的,那么$this->dbforge-> drop _ table ($table_name)不应该总是删除一个表吗?

编辑

作为一种变通办法,我能够使用:

代码语言:javascript
复制
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,但是...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-19 07:41:30

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

默认情况下,社区和专业版的所有安装都会将default_作为第一个站点中所有表的前缀。如果您有专业版,您可以添加新站点,站点引用将是whatever_而不是default_

这个前缀由dbforge负责,所以当您想要删除default_blog时,只需删除:

/admin/database/drop/blog

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

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

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

代码语言:javascript
复制
public function drop($table_name)
{
    $this->dbforge->drop_table($table_name);
    redirect('admin/database/tables');
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7813073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档