2012-07-06 4 views
0

Oracle (10g) 데이터베이스와 상호 작용하는 PHP 프로젝트에서 Codeigniter를 사용하고 있습니다. Codeigniter를 성공적으로 구성하여 데이터베이스에 연결하고 쿼리합니다. 그러나 수동으로 Oracle SQL Developer를 사용하여 데이터베이스에 삽입/업데이트/삭제 스크립트를 실행 한 다음 Codeigniter를 사용하여 변경 사항을 확인하면 새 데이터를 인식하지 못합니다.Codeigniter와 Oracle 쿼리 결과가 동기화되지 않음

즉. IDNAME 열을 가진 테이블 TBL_PERSON이 있다고 가정 해보십시오.

insert into TBL_PERSON values(1, 'Name1'); 

가 그럼 난 CI를 통해 TBL_PERSON에서 데이터를 가져 :

$this->db->get_where('TBL_PERSON', array('ID'=>1)); 

그것은 최근에 삽입 된 데이터를 반환하지 않습니다 나는 오라클 SQL Developer를 사용하여 삽입 문을 실행합니다. XAMPP를 다시 시작해야하며 데이터가 나타나기 전에 페이지를 여러 번 새로 고칩니다. 나는 데이터 자체를 삽입하는 CI를 사용하는 경우, 그것은 즉시 필요한 데이터를 반환,

$this->db->insert('TBL_PERSON', array('ID'=>1, 'NAME'=>'Name1'); 

가 다시 가져 오기 코드를 실행 말한다.

이제 Codeigniter 또는 Oracle SQL Developer 중 어디에서 불일치가 있는지 확실하지 않습니다. 그것이 Codeigniter에 있다면, 무엇이 이것을 일으키고 있으며 이것을 막기 위해 올바른 설정이되어야합니까? Codeigniter는 오라클에 결과 캐싱을 제공합니까? 내가 데이터베이스의 데이터베이스 캐싱을 이미 OFF로 설정했습니다 :

$db['default']['cache_on'] = FALSE; 
+0

페이지 출력을 캐시합니까? –

답변

1

SQL Developer에서 자동 커밋을 사용할 수 있습니까? insert 문이 즉시 커밋되지 않은 경우 일 수 있습니다.

+0

당신은 그것을 얻었다! 감사!!! 필자는 MySQL에 익숙하기 때문에 SQL Developer의 자동 커밋을 살펴 보지 않았습니다. – spicefoo

0

한 번 같은 문제가있었습니다. 다른 IT의 사람들은 oci_connect이 (가) 쿼리 후 COMMIT 실행

INSERT INTO "TABLE" VALUES (1,2,'3'); COMMIT; 

모든 것을 시도했다. SQL 개발자와 같은 도구를 사용하는 경우 쿼리 후 COMMIT를 실행해야합니다.

관련 문제