만들면서 배우는 CodeIgniter Q&A

제목 session로드하는 부분 막혀서 질문드립니다.
글쓴이 보리 작성시각 2015/07/25 23:16:37
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 11864   RSS
autoload.php 에서 
$autoload['libraries'] = array('session');
으로 바꾸고 나면
/bbs/index.php/board/lists/ci_board/page/1
이렇게 접속하여도

데이터베이스 오류가 발생하였습니다.

Error Number: 1054

Unknown column 'data' in 'field list'

SELECT `data` FROM `ci_sessions` WHERE `id` = 'eee457700513dddcb49819942e794433c4d7c388'

Filename: libraries/Session/drivers/Session_database_driver.php

Line Number: 160

이런식으로 나옵니다. 
라이브러리에 session만 추가하면 이런 현상이나오는데 어떻게 해결하면 좋을까요?

 다음글 p.94 쪽 데이터베이스 에러 관련 질문입니다(ㅠ.ㅠ) (1)
 이전글 검색 예제에서 Database 에러 (LIMIT -5,... (3)

댓글

변종원(웅파) / 2015/07/27 10:26:52 / 추천 0
Unknown column 'data' in 'field list'  <- 이 에러 메세지 그대로입니다.
ci_sessions 테이블안에 data 필드가 없어서 에러가 나는겁니다.

뭔가 건드리신 것 같네요. ci_sessions의 데이터를 담는 필드명은 user_data 입니다.

책 소스에서 뭔가 바꾸신건가요? 아니면 게시판을 잘못 올리셨는지요?
보리 / 2015/07/27 10:38:52 / 추천 0
config.php 에서 이렇게 수정하는거 맞나요? 
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

책 소스랑 다른건 config.php 뿐이고
다른 부분은 그대로 작성하였습니다. 
$autoload['libraries'] = array('session');으로 하고 나면
/html/bbs/ 까지만 작성하고 접속해도 저런식으로 나오구요,

 libraries/Session/drivers/Session_database_driver.php
에서 $this->_db
                ->select('data')
                ->from($this->_config['save_path'])
                ->where('id', $session_id);
이부분에 관련된거 같은데 잘 모르겠네요. 도와주세요ㅠ
 
변종원(웅파) / 2015/07/27 16:39:34 / 추천 0
3점대 소스이신 것 같네요. 책은 2점대 소스를 기준으로 작성됐습니다.
ci_sessions라는 테이블에 data 필드를 추가해보세요.

가급적이면 2점대 codeigniter로 작업하세요. codeigniter.com에서 2.2.3 버전 받을 수 있습니다.
보리 / 2015/07/27 16:52:24 / 추천 0
감사합니다 해결했네요^^..
3점대 소스라서 3점대 소스에 맞는 ci_sessions 테이블을 만들었어야 했네요.