创建表并使用它 - Codeigniter

时间:2014-10-10 18:48:46

标签: php codeigniter

我使用CI面对一件非常奇怪的事情,

我使用DBforge类创建表,一切都很好,表确实是在我的数据库上创建的。

然而,当我尝试使用新创建的表(插入,检查是否存在等)时,我无处可去。 给出以下简单代码:(两个函数都在模型中)

function create_modules_table($tablename)
{
            $fields = array(
            'module_name' => array(
                    'type' => 'VARCHAR',
                    'constraint' => '100'
            ),
            'status' => array(
                    'type' =>'VARCHAR',
                    'constraint' => '100'
            ),

    );
    $this->dbforge->add_key('module_name', TRUE);
    $this->dbforge->add_field($fields);
    return $this->dbforge->create_table($tablename);
}

其次是

function table_exists($table)
{
    return $this->db->table_exists($table);
}

如果我跑

$this->create_modules_table('table');
$reply = $this->table_exists('table');

事实证明$reply is returning false

我检查了我的数据库 - 表确定在那里,100%正常工作。

所以我再次运行代码,而没有从数据库中删除表now the reply is true

第一次运行始终未通过检查,就好像CI不知道数据库中发生了某些变化。 **任何人都可以了解这里发生的事情吗? **

1 个答案:

答案 0 :(得分:0)

您可以在。This link

中查看解决方案

这是一个CI Bug,在DB_forge创建新表后不会更新data_cache。