CI 코드

제목 ci 큐브리드 드라이버 입니다.
글쓴이 삐따기 작성시각 2009/11/19 04:37:43
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 13565   RSS

안녕하세요 눈팅 회원 삐따기 입니다.


예전에 공개 할려다 안한 큐브리드 드라이버 공개 합니다.
엑티브 레코드,일반쿼리 지원합니다.

아직 드라이버가 완전 하진 않습니다. 오류 가능성 있으니 테스트 용으로 사용하세요..


테스트 환경은 CI 1.7.1, CI 1.7.2 / 우분투

압축 파일 푸식고, system 디렉토리를 업어 쒸우시면 됩니다.

database.php
데이타 베이스 설정입니다.

$db['default']['trans'] : 트랜잭션 : TRUE , 트랜잭션 지원 안함 : FALSE
보통 트랜잭션 지원 없이 사용하시구요..
트랜잭션 지원 하시면 쿼리를 일괄 취소 할수 있습니다.

드라이버 명은 cubrid, cubridi 두개  입니다. 차이는 prepared 와 아니냐 입니다.

$active_group = "default";
$active_record = TRUE;
/* cubrid test server */
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "디비 사용자";
$db['default']['password'] = "디비 암호";
$db['default']['database'] = "디비 명";
$db['default']['dbdriver'] = "cubrid";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['default']['trans'] = FALSE;
$db['default']['port'] = 33000;

Scaffolding.php 수정 내역
: 큐브리드는 데이타 자료형을 엄격히 지켜 줘야 합니다. int 자료형이면 데이타에 따옴표가 있으면 에러 납니다.
  그래서 엑티브레코드 입력할때 배열을 강제 형변환 해서 넣습니다.
  mysql 은 자료형 상관 안하므로 아래처럼 고쳐도 동작 합니다.


  207 라인 : $query = $this->CI->db->get_where($this->current_table, array($primary => (int)$id));
  233 라인 : $this->CI->db->update($this->current_table, $_POST, array($primary => (int)$this->CI->uri->segment(4)));
  281 라인 : $this->CI->db->where($primary, (int)$this->CI->uri->segment(4));
  
  
예제 설명
blog.sql : 큐브리드 매니저에서 질의창 뛰우시고 실행 하십시요.
스케폴드 설정 하시고 데이타 입력 하시면 됩니다.
기본적으로 데이타 베이스 설정 변수중에
$db['default']['trans'] = FALSE; 여야 합니다.

트랜잭션 처리 방법으로 할경우 트랜잭션 처리 함수를 넣어 주어야 합니다.


제가 이걸 공개 하는것은 조금이나마 도움이 되었으면 해서이고요, 사실 버그 투성이라 도움도 받으려 하는것입니다.

예제는 최운용님의 블로그 만들기 인데요 .. 이건 작동하는거 제가 확인 했습니다.
 

  

첨부파일 cubrid_driver.zip (26.0 KB)
 다음글 [예제]Code Igniter ExtJs Integra... (2)
 이전글 [응용] csv 파일 읽기 (2가지방법) (2)

댓글

ci세상 / 2009/11/19 10:04:38 / 추천 0

1day1, 삐따기, ci세상 동시 작업이군요^^

큐브리드, 오라클을 사용할때 일반쿼리에 한정해서 ci를 이용하는것이 더 좋아보였습니다.

만들어 주신것처럼, 스캐폴드, 엑티브레코드, 프로파일러, forge, util등을 다 지원시키려면 ci 코어들을 많이 건드려야 한다는 결론을 얻었지요^^

cubrid_driver.php
cubrid_result.php

2개만 한국포럼에서 정식 기술 지원을 해드리고 ~~ 나머지 부분은 필요에 의해서 추가옵션으로 테스트 자문을 해드리면 어떨까 생각해 보았습니다. ~~

- CI의 확장성을 위해 고생해 주신 삐따기님께 감사드립니다. ^^ -