我在与 Oracle (10g) 数据库交互的 PHP 项目中使用 Codeigniter。我已成功配置 Codeigniter 以从数据库连接和查询。但是,当我使用 Oracle SQL Developer 在数据库上手动运行插入/更新/删除脚本,然后使用 Codeigniter 检查更改时,它无法识别新数据。
IE。假设我们有一个TBL_PERSON
包含ID
和NAME
列的表。我使用 Oracle SQL Developer 运行插入语句:
insert into TBL_PERSON values(1, 'Name1');
然后我TBL_PERSON
通过 CI 获取数据:
$this->db->get_where('TBL_PERSON', array('ID'=>1));
它不会返回最近插入的数据。我必须重新启动 XAMPP,在数据出现之前多次刷新页面。但是如果我使用 CI 插入数据本身,比如说
$this->db->insert('TBL_PERSON', array('ID'=>1, 'NAME'=>'Name1');
然后再次运行获取代码,它会立即返回所需的数据。
现在,我不确定不一致之处在哪里:是在 Codeigniter 中还是在 Oracle SQL Developer 中。如果它在 Codeigniter 中,是什么导致了这种情况,应该采取什么正确的设置来防止这种情况?Codeigniter 是否为 Oracle 提供结果缓存?我已经将 CI 的数据库缓存设置为 OFF:
$db['default']['cache_on'] = FALSE;