Oracle (10g) データベースとやり取りする PHP プロジェクトで Codeigniter を使用しています。データベースに接続してクエリを実行するように Codeigniter を正常に構成しました。ただし、Oracle SQL Developer を使用してデータベースで挿入/更新/削除スクリプトを手動で実行し、Codeigniter を使用して変更を確認すると、新しいデータが認識されません。
すなわち。と列を持つテーブル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 のデータベース キャッシングを既にオフに設定しました。
$db['default']['cache_on'] = FALSE;