0
我正在使用CI面對一個非常奇怪的事情,我正在使用DBforge類來創建一個表,一切都很好,表的確是在我的數據庫上創建的。創建表並使用它 - Codeigniter
但是,當我嘗試使用新創建的表(插入,檢查是否存在等),我無處可去。 給出下面簡單的代碼(這兩種功能是一個模型裏)
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沒有意識到DB中發生了某些變化。 **任何人都可以闡明這裏發生的事情嗎? **
也許DBForge或數據庫庫緩存表的列表,並且它在創建表時不會更新? – Kryten 2014-10-10 22:30:22
是的,我認爲同樣的事情,文檔上沒有任何內容,儘管..使它有點傻,因爲它使它很難用於表創建。 – Patrick 2014-10-10 22:35:44