CI 묻고 답하기

제목 atal error: Call to undefined method CI_DB_oci8_driver: 에러...
글쓴이 니로 작성시각 2015/05/27 09:36:03
댓글 : 14 추천 : 0 스크랩 : 0 조회수 : 19183   RSS

Fatal error: Call to undefined method CI_DB_oci8_driver::select() in F:\Project\b2b\application\models\auction_model.php on line 18

에러 내용인데요.. 이렇게 나오는 이유가 궁금해요..ㅠㅠ

어떻게 해결해야 할지도 알려주시면 감사합니다..!




<?php
class auction_model extends CI_Model{
    
    private $table_name = array
    (
            'category'        => 'BBE_PUMBUN',
            'test'        => 'board_files',
    );
    
    public function __construct()
    {
        parent::__construct();
    }
    //20150526
        //메뉴 카테고리 가져오기
        public function category()
        {
        
            $this->db->select('COUNT(*)');
            $this->db->from($this->table_name['category']);
            $query = $this->db->get();
            
            
            echo $this->db->last_query();
            
            
            if ($query->num_rows() > 0)
            {
                foreach ($query->result() as $row)
                {
                    $data[] = $row;
                }
                return $data;
            }
            else
            {
                return array();
            }
            
            
        }
        
    
    
    
}
/* End of file auction_model */
/* Location: ./application/models/auction_model.php */



해당 페이지 소스입니다..
 다음글 안녕하세요 구글차트를 쓰려고 하는데 (4)
 이전글 [3.0][해결] remap 을 통해 method를 먼... (4)

댓글

변종원(웅파) / 2015/05/27 10:17:38 / 추천 0
18번 라인에 해당하는 함수 소스를 올려주셔야 뭐가 잘못된건지 알려드릴 수 있습니다.
니로 / 2015/05/27 10:20:17 / 추천 0
해당 페이지 소스를 올렸는데요..

저라인은 단순이 select 문이 있는 라인입니다 ㅎㅎ....
한대승(불의회상) / 2015/05/27 10:40:38 / 추천 0
오라클 디비에 접속이 안된것 같은데요. ^^
옴므파탈 / 2015/05/27 10:40:47 / 추천 0
단순한 count 를 알고 싶으신거라면, count_all_results() 를 사용해보세요.. 
옴므파탈 / 2015/05/27 10:41:30 / 추천 0
저도 저런 류의 에러구문을 만났을때는 database.php 에 설정이 잘못되었을 때였던것 같습니다. 
니로 / 2015/05/27 10:45:07 / 추천 0
음.. 답변감사합니다 데이터베이스 설정한번 다시 봐야겠네요 ㅎㅎ;
니로 / 2015/05/27 11:10:30 / 추천 0
$active_group = 'default';
$active_record = FALSE;

$host = "ip주소";
$id      = "유저명";
$pass = "패스워드";
$mode = true;

$db['default']['hostname'] = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ".$host.")(PORT = 1521)))(CONNECT_DATA =(SID = ORCL)(SERVICE_NAME = ORCL)))"; 
$db['default']['username'] = (!$mode) ? exec('/usr/local/src/crypt/entin_crypt DECODE ID ' . $id) : $id;       
$db['default']['password'] = (!$mode) ? exec('/usr/local/src/crypt/entin_crypt DECODE ID ' . $pass) : $pass;  
$db['default']['database'] = ""; 
$db['default']['dbdriver'] = "oci8";    
$db['default']['dbprefix'] = ""; 
$db['default']['pconnect'] = FALSE; 
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ""; 
$db['default']['char_set'] = "utf-8"; 
$db['default']['dbcollat'] = "utf8_general_ci";
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


이렇게 설정되어있는데 잘못된 부분이 있는건가요...?
옴므파탈 / 2015/05/27 11:43:58 / 추천 0
(DESCRIPTION =    
    (ADDRESS_LIST =
        (ADDRESS =
            (PROTOCOL = TCP)
            (HOST = ".$host.")
            (PORT = 1521)
        )
    )
    (CONNECT_DATA =
        (SID = ORCL)
        (SERVICE_NAME = ORCL)
    )
)

오라클은 원래 이런식의 hostname 을 가지나요?
저는 mysql 만 써서 "localhost" 만 적어주면 됐었는데..
@한대승 님의 말처럼 접속이 정상적이지 않을때 저런 에러가 나타나곤 했습니다. 
옴므파탈 / 2015/05/27 11:44:27 / 추천 0
다시보니, target database 지정이 안되어 있네요. 
$db['default']['database'] = ""; <-- 데이터베이스 지정해주세요. 
니로 / 2015/05/27 12:19:58 / 추천 0
음.. 데이터베이스 지정은 안해도 되는거같아요.. 다른 소스들도 그렇게 사용하고 잇거든요.ㅠㅠ
지정해봣는데도 같은 에러가 발생하네요..
참...ㅠㅠ 설정값들은 여태 해오는거처럼 다른것들과 같은 형식으로 햇는데 안되다니...
한대승(불의회상) / 2015/05/27 12:59:49 / 추천 0
OCI8을 사용할 일이 없어서.. ^^
아래 URL 확인해 보세요.
http://manojbethel.blogspot.kr/2010/09/using-oracle-with-php-and-codeigniter.html
니로 / 2015/05/27 16:36:20 / 추천 0
별짓을 다해봐도 안되네요 ㅠ_ㅠ

멘탈붕괴..ㅠ-ㅠ
변종원(웅파) / 2015/05/27 17:03:04 / 추천 0
php와 오라클 연동은 되어 있는거죠?

http://zetawiki.com/wiki/PHP에서_오라클_DB_사용
니로 / 2015/05/27 17:42:19 / 추천 0
하.해결햇습니다!!!!

database.php 에서 

$active_record = TRUE; 옵션이 FALSE로 되어잇어서 TRUE로 바꿧더니 되네요...ㅎㅎㅎㅎ!