제목 | Medel insert 질문 | ||
---|---|---|---|
글쓴이 | Louis | 작성시각 | 2015/09/07 16:07:52 |
|
|||
안녕하세요? 혼자 개발하며 삽질하고 있는 왕초보입니다. 개발중 Medel을 이용하여 insert 시키고자 하니 Call to a member function insert() on a non-object in 이 에러는 무엇인가요? 2일넘도록 삽질중입니다... $this->db->set();을 넣으면 똑같은 에러를 내뱉구요.. 하두 삽질하다가 답답한 마음에 질문 올립니다. class Member_model extends CI_Model { function __construct() { parent::__construct(); $this->load->database(); } function Member_add($option){ /* $this->load->database(); $this->db->set('userid', $option['userid']); $this->db->set('userpw', $option['userpw']); $this->db->set('username', $option['username']); $this->db->set('phone', $option['phone']); $this->db->set('phone_device', $option['phone_device']); $this->db->set('email', $option['email']); $this->db->set('add_country', $option['add_country']); $this->db->set('add_address', $option['add_address']); $this->db->set('add_zip', $option['add_zip']); $this->db->insert('member'); */ //$this->load->library['database']; $data = array('userid'=>$option['userid'], 'userpw'=>$option['userpw'], 'username'=>$option['username'], 'phone'=>$option['phone'], 'phone_device'=>$option['phone_device'], 'email'=>$option['email'], 'add_country'=>$option['add_country'], 'add_address'=>$option['add_address'], 'add_zip'=>$option['add_zip'] ); echo "111111111"; echo $data['userid']; //$this->db->insert_string('member', $data); $this->db->insert('member', $this); /* $result = $this->db->insert_id(); return $result; */ } } 코드는 현재 이렇습니다. 간단한 정보 몇개 넣는거 조차 헤매네요.... 에코로 찍은건 다 나옵니다. 하지만 insert에서 막혀버려서... 도움좀 부탁드리겠습니다. |
|||
다음글 | mysql hex암호화 질문입니다. (2) | ||
이전글 | 한 페이지내 폼이 두개 존재하는 경우 처리 방법 (3) | ||
들국화
/
2015/09/07 16:11:13 /
추천
0
|
Louis
/
2015/09/07 16:38:21 /
추천
0
들국화님 감사합니다. function __construct() 여기에 명시해두었는데 문법에 맞지 않는건가요??
|
한대승(불의회상)
/
2015/09/07 17:08:26 /
추천
0
모델코드에 특별한 이상이 있어 보이지는 않습니다.
__construct()에 명시해 두면 문법에도 맞습니다. 하지만 들국화님 말대로 DB 로딩이 제대로 되지 않았습니다. 이럴 경우 대부분 DB 설정이 잘 못되었거나 php에 mysql 관련 라이브러리가 없는 경우 입니다. DB 설정은 application/config/database.php 를 확인해 보시고, mysql 관련 라이브러리가 있는지 phpinfo() 를 통해서 확인 보세요. |
Louis
/
2015/09/07 17:43:37 /
추천
0
불의회상님 감사합니다. phpinfo()확인하였습니다. 일반 php로 mysql연동 되는거 까지 확인하였습니다. 값이 잘 들어가고 잘 보여집니다... DB설정 부분입니다. 비밀번호와 데이터베이스명은 노출하지 않겠습니다.
$active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = 'password'; $db['default']['database'] = 'database'; $db['default']['dbdriver'] = 'mysqli'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE; 잘못된 부분 지적 부탁드립니다... 하 이제 치져갑니다... |
한대승(불의회상)
/
2015/09/07 17:52:42 /
추천
0
웹호스팅에서 테스트중이라면 $db['default']['pconnect'] = TRUE; 값을 FALSE 로 바꿔 보세요.
|
Louis
/
2015/09/07 17:59:58 /
추천
0
Fatal error: Call to a member function insert() on a non-object in
바꾸고 해보았지만 동일합니다............. 왜 이런 시련이 있을까요 |
kaido
/
2015/09/07 18:29:38 /
추천
0
그 호스팅 mysqli 설치 안된것 아닌가요? [mysql 아닙니다.]
|
들국화
/
2015/09/08 09:25:28 /
추천
0
터미널에서 위 설정으로 접속이 되는지도 확인해 보세요.
|
pwrlove
/
2015/09/08 12:54:45 /
추천
0
코드이크나이터 버전이 얼마인지 모르겠지만,
제가 2.2 버전을 쓰고 있는데. mysqli -> mysql로 바꿔서 한번 테스트해 보세요. 설정이나 다른것은 특별한 이상이 없어 보입니다. 아님, 디비 오류로그를 한번 보세요. |
Louis
/
2015/09/09 10:27:26 /
추천
0
구글링하다가 system/database 파일을 받아서 덮어씌워보니 해결되었습니다..... 뭐지?란 생각이 드네요.
system은 건들지도 않았는데.. 뭔가 버그가 있나봅니다. 코드이그나이터 사이트에서 받은건데... |
한대승(불의회상)
/
2015/09/09 11:23:50 /
추천
0
@Louis www.codeigniter.com 에서 다시 다운받아 덮어 써 보세요.
|
오토로딩 하거나. $this->load->database(); 를 명시해 주세요.