CI 묻고 답하기

제목 mssql dsn 방식으로 연결해서 데이터 핸들링하기.
글쓴이 작성시각 2009/08/25 14:11:48
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 37427   RSS
database.php 파일에 배열로 선언해서 Db 연결을 하지 않고 DSN을 이용해서 MSSQL을 연결해서 사용하려고 합니다.
model에서 아래 처럼 설정을 했습니다.

  function Msdbconn_model()
    {
        // Call the Model constructor
        parent::Model();
        $dsn = 'mssql://username:passwrd@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';
	$this->db_conn01  = $this->load->database($dsn, TRUE);
		
    }

 function select_entry_MS($list_num, $offset, $data)
   {
	$sql = "SELECT GID, CID FROM TableName";
		
	$query = $this->db_conn01->query($sql);
	return $query->result();  //--> line 33 요기서 에러가 나네요.
    }
그랬더니 나오는 메시지가 아래와 같습니다.

Fatal error
: Call to a member function result() on a non-object in /web/_ci/system/app_board/models/msdbconn_model2.php on line 33

mssql 연결되는 것 같은데 객체가 제대로 생성이 되지 않는 듯 합니다.
유사한 문제를 겪어보셨거나 해결하신 분이 있으시면 함께 고민하고파 글 올려봅니다.

 다음글 foreach 빈값생길때 스페이스 생성하기 (5)
 이전글 PHP/5.3.0 에서 에러나는거 잡아보신분 ? (4)

댓글

변종원(웅파) / 2009/08/25 15:22:11 / 추천 0
제가 보기엔 연결이 안된것 같습니다.

$dsn
= 'mssql://username:passwrd@hostname/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';


위구문은 실제로는 사용하시는 username과 password, hostname, database, 캐시 디렉토리로 선언하신 거죠?
mssql 본지가 오래되서 그런데 db collation인 utf8_general_ci도 mysql과 동일하게 사용하는건가요?


ci 포럼 확인해보니 mssql은 mysql과 캐릭터셋과 collation 설정이 다르네요.
아래 글 참고해서 연결하세요.

http://codeigniter.com/forums/viewthread/86055/