CI 묻고 답하기

제목 db호출 오류 - 3일째...
글쓴이 이뿌니쭈양 작성시각 2014/10/14 22:55:43
댓글 : 10 추천 : 0 스크랩 : 0 조회수 : 13920   RSS
안녕하세요.
오늘도 삽질하다... 또 올려보아요..
이번엔 캡쳐해서 첨부했습니다.

도와주세요.. 넘어가고 싶어요...
첨부파일 첨부.zip (150.8 KB)
 다음글 views 폴더 말고 다른 폴더를 view 폴더로 지정... (2)
 이전글 http에서 https로 Ajax를 사용하여 로그인할때...

댓글

한대승(불의회상) / 2014/10/15 05:31:44 / 추천 0
PHP 버젼을 어떤걸 사용하는지 모르겠지만...
mysqli 드라이버를 사용해 보세요.
 
$db['default']['dbdriver'] = 'mysqli';
위 처럼 수정하시면 됩니다.
이뿌니쭈양 / 2014/10/15 07:32:58 / 추천 0
안되네요...ㅠㅠ
php 5.6.1
mysql 5.6, mysql workbench
아파치 2.4.10 win64 v11
쓰고 있습니다.
 
한대승(불의회상) / 2014/10/15 08:10:20 / 추천 0
php에 mysql 드라이버 자체가 설치 되지 않은건 아닐까요?

phpinfo() 로 환경을 확인해 보세요.
letsgolee / 2014/10/15 08:19:43 / 추천 0
function __construct()
{
    parent::__construct(); // 이게 가장 중요함...
    $this->load->database();
    .... 이하 알아서...

function user()를 사용하는 것보다 function __construct()를 쓰시고 혹 예전방식을 사용하더라도 클래스명과 되도록 일치하게 해주시는 것이 좋습니다. user보다는 User가 좋구요... 하지만 트렌드를 무시해서는 안되겠죠? 그리고 문제는 User가 제대로 작동하려면 parent::__construct()가 반드시 실행되어야 합니다. 이부분이 빠졌기 때문이라 판단됩니다.
들국화 / 2014/10/15 09:29:46 / 추천 0
letsgolee님 말처럼 __construct() 가 빠져서 그런것 같네요.

그리고 date()에 timezone php.ini 에 
date.timezone = Asia/Seoul 추가해 주세요.
이뿌니쭈양 / 2014/10/15 09:30:48 / 추천 0
httpd.conf 에 아래 추가 했습니다.
PHPIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddType application/x-httpd-php .php .html

php.ini 에서 mysql 사용하도록 주석 풀었어요..
extension=php_mysql.dll
extension=php_mysqli.dll

parent::__construct() 도 이용해서 해봤었는데 이 문제는 아닌거 같아요..
autoload 에서 array('database') 만 써도 오류가 나거든요..
다른 일반 페이지는 잘 작동하는데 this->db->query 를 쓰거나 this->load->database() 만하면
페이지 오류가 나요..

좀 의심이 드는건...
로그레벨 1로 두었을때 data.timezone 에러가 나길래 php.ini 에서 date.timez
으로 설정을 해도 계속 나오더라구요...

혹시.. php.ini 를 못읽은건 아닌가.. 하는 생각이 드네요..
여기에 mysql 드라이버 설정도 했고 timezone 도 설정했는데 말입니다...

저녁에 집에가서 다시한번 봐야겠네요 ㅜ_ㅜ....
 
들국화 / 2014/10/15 09:36:03 / 추천 0
phpinfo() 에 보면 php.ini위치가 나올거에요. 확인해 보시고요 읽지 못한다면 mysql 주석 풀어줘도 못찾겠죠.
date_default_timezone_set('Asia/Seoul');
코드를 직접 써 보세요. php.ini에 적지 않아도 설정가능 합니다.
letsgolee / 2014/10/15 09:52:53 / 추천 0
User::load 가 없다는 에러는 parent::__construct()를 사용하지 않을 때입니다. load가 생성되는 타임은 CI_Controller::__construct()에서 이루어집니다. 소스코드를 보면 확실히 알 수 있으니까 확인해 보세요.

User::db가 제대로 작동하지 않거나 혹은 autoload에 등록하여도 에러가 나거나 $this->load->database() 에서 에러나는 것은 데이터베이스 설정이 제대로 되지 않았음을 말하는 겁니다. 따라서 parent::__construct()는 Controller나 Model이나 모두 기본적으로 넣어야 합니다.

이쁘니쭈앙님은 Model을 정의할 때에는 넣었지만 Cntroller 정의할 때에는 넣지 않았습니다. 그거 확인해 보세요.

그리고 date()문제는 들국화님이 제안한 대로 config.php 안에다 date_default_timezone_set('Asia/Seoul'); 라고 적어놓는 것도 좋습니다.

그리고 데이터베이스 에러 문제는 127.0.0.1보다 localhost를 넣고는 테스트해보았나요?
이뿌니쭈양 / 2014/10/15 22:07:36 / 추천 0

전부 삭제하고 처음부터 다시 셋팅 했습니다.
이제 되네요..!!!!
똑같이 했는데 .. 무엇이 문제였는지 모르겠네요..ㅜ_ㅜ... 아무튼...^^v

모든분들 조언 감사합니다.( __)
하늘치 / 2015/01/27 16:46:25 / 추천 0
꽤 지났지만, 혹시나 해서 남겨봅니다.. 

아파치 세팅(httpd.conf) 수정 후에는 재시작해주어야 하지 않나요?
기본이라서 아무도 얘기하지 않으셨다면 onz..