CI 묻고 답하기

제목 db 호출 오류 - 2일째 삽질중...
글쓴이 이뿌니쭈양 작성시각 2014/10/13 23:49:36
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15732   RSS
안녕하세요. 

코드이그나이터 설치 후 처음으로 db 조회 해보려는데... 
첫빵에 실패...-_-.. 멘붕입니다.

db 설정 모두 했고요. 기본적인 조회가 되지 않네요..
오류는 아래와 같아요..

=======================================
A PHP Error was encountered

Severity: Notice

Message: Undefined property: Auth::$db

Filename: core/Model.php

Line Number: 51
========================================
Call to a test function query() on null 


model에 있는 test 함수에서
$this->db->query($sql);
조회하는데 안되네요... 

실제로 Model.php 51 라인에 가보니

function __get($key)
{
        $CI =& get_instance();
        return $CI->$key;          =====> 여기가 51Line 입니다.
}


ㅠㅠ.. 미치겠습니다...
autoload.php 에서 $autoload['libraries'] = array('database');
설정을 하게 되면 index 페이지 조차 뜨지 않습니다.

log 레벨을 1로 두고 해봤더니 로그에 찍힌 정보도
Undefined property: Auth::$db C:\Apache24\htdocs\Project\system\core\Model.php 51
라고 뜹니다.

책 보면서 하고 있는데... 무엇이 잘 못 된 것일까요..ㅠㅠ
너무 답답해서 글 올려 봅니다...
도와주세요....



 

 다음글 CI멀티사이트 구성시에 크론탭 사용 질문.. (2)
 이전글 insert 쿼리 사용 시 트랜잭션 처리 (2)

댓글

변종원(웅파) / 2014/10/14 00:44:58 / 추천 0
데이터베이스 로딩이 안된겁니다.

호스트명, 아이디, 비밀번호 확인해보세요.

autoload에 넣었을때 흰화면만 나오는 것은 db연결이 안되고 에러가 났기 때문입니다.
아파치 에러로그와 mysql log 보세요.
이뿌니쭈양 / 2014/10/14 07:51:14 / 추천 0
저도 호출을 못하고 있는것 같아 Localhost로도 해보고 127.0.0.1 로도 해봤습니다.. 아이디.비버.디비명 외에 입력한것이 없습니다. 그래서 더 멘붕이랍니다.ㅜㅜ 비번문제인가 싶어서 Mysql 툴에서 다시 로그인도 해봤는데 비번에는 이상이 없네요 에휴.. 제가 뭔가를 놓치고 있거나 코앞의 문제를 못보고 지나친건 아닌지.. 일 끝나고 집에가면 다시 해봐야겠네요
들국화 / 2014/10/14 09:41:06 / 추천 0
우선 mysql client로 웹서버 위치에서 접속이 잘 되는지 해 보세요.
mysql 접근권한이 없을수 있습니다.
클라이언트로 잘 접속이 되면 디비 설정을 올려 주세요. 정보가 없으면 도움을 드리기 어렵습니다.

잘된다면 autoload는 넣어주시는게 좋구요 아니면 일일이 로딩해 줘야 하니까요.
디비연결외에 다른페이지는 잘 뜨는지도 확인해 보세요. ci설정이나 .htaccess설정이 잘못됐을수도 있구요.
로그를 보실수 있으면 로그를 보는게 빠르고 정확합니다.
letsgolee / 2014/10/14 12:44:03 / 추천 0
에러 메시지를 잘 보세요. Undefined property: Auth::$db

따라서 Auth는 CI_Model이 extended가 되지 않았을지 모릅니다. 만일 mysql 연결설정이 맞다면 다음을 확인해 보세요.

먼저 클래스 종류. 예: class Auth extends CI_Model

두번째 자동으로 autoload되지 않는다면 __construct() 함수 있는지 확인. 예:
function __construct() {
    parent::__construct();
    $this->load->database(); // 이것도 혹시 넣어보시길... 사실 autoload이면 필요는 없음...
}