제목 | CI에서 PDO 사용법 | ||
---|---|---|---|
글쓴이 | 정수리 | 작성시각 | 2016/05/17 10:47:20 |
|
|||
CI에서 PDO를 사용할려고 하는데
database.php에서 pdo 설정 후
db연결까지 성공하였는데
query 날리것에서 잘안되네요;
$this->pdo->query('select * from XXX)->result(); 오류가 발생하네요; pdo방식으로 $select->pdo->query('select & from xxx'); $select->execute(); $select->setFetchMode(PDO::FETCH_ASSOC); $select->fetch(); 이렇게해도 오류가 발생하네요
구글 통해 찾아보니 pdo방식으로 해도된다 연결은 pdo로 하고 사용방법은 ci 방식으로해야한다
여러가지인데 정확히 어떤것을 어떻게 사용해야되죠? |
|||
다음글 | ajax 버그라고 생각하는데 어떻게들 생각하시나요? (3) | ||
이전글 | 컨트롤러나, 모델 클래스가 쓰레드에 안전한가요? (2) | ||
한대승(불의회상)
/
2016/05/17 12:08:08 /
추천
0
|
kaido
/
2016/05/17 12:14:40 /
추천
0
@불회 이런 실수를 ㅎㅎ 잘못된 정보는 얼른 삭제. |
정수리
/
2016/05/17 13:25:10 /
추천
0
@불의회상 죄송하지만;; get()이 어디에 있죠??; 제가 작성한 것에 get()에 관련된 문구가 없어서; |
한대승(불의회상)
/
2016/05/17 13:34:23 /
추천
0
정수리님이 작성하신 코드에는 없습니다. ^^
|
정수리
/
2016/05/17 13:42:53 /
추천
0
@불의 회상 말씀하신 방법의 경우는 pdo를 사용하지 않는 방식 아닌가요? 찾아보니 이렇게 사용하라고 하는데; 밑에 껄로해도 안되네요;;
$stmt = $this->pdo->query("SELECT * FROM users"); var_dump($stmt->result()); |
한대승(불의회상)
/
2016/05/17 13:53:11 /
추천
0
@정수리 pdo 설정을 어떻게 하셨나요? 그리고 제가 제시한 방법은 $this->pdo 가 아니라 $this->db 입니다. |
정수리
/
2016/05/17 14:03:26 /
추천
0
@불의회상 아 db방법을 추천하신 거군요. pdo 설정의 경우 database 설정에서 $db['default'] 밑에 $db['pdo']하여 설정하였습니다; 연결은 되는데 쿼리에서 안되니 ㅜ.ㅜ $db['pdo']=array( |
한대승(불의회상)
/
2016/05/17 14:22:34 /
추천
0
@정수리 PDO 설정은 제대로 하셨습니다. $this->db가 아닌 $this->pdo 를 이용하여 별도로 접근 하고 싶다면 아래처럼 load 하여 주셔야 합니다. $this->pdo = $this->load->database('pdo', TRUE); http://www.ciboard.co.kr/user_guide/kr/database/connecting.html |
정수리
/
2016/05/17 14:24:18 /
추천
0
@불의회상 접근할려고 할때 말씀하신대로 'pdo', true 하고 접근 하였을시 정상적으로 접근이 되는걸 확인했지만 query 사용이 되지 않아서 ㅜ,ㅜ query를 날릴때 다른방법으로 날려야 하나요? |
kaido
/
2016/05/17 14:35:34 /
추천
0
일단 정수리님은 CI 구조에 대해서 오해가 있으신것 같습니다.
'dbdriver'=>''; 어떤 드라이버를 사용하겠냐는 의미입니다. pdo mysql mysqli mssql 기타등등
드라이버를 선택 하면 접속 설정과 안쪽에 쿼리 선언등등은 전부 CI 방식으로 실행 됩니다. [왜냐면 드라이버 안쪽에서 변환시켜서 실행 하거든요.]
즉 pdo를 하든 mssql 를 하든 $this->db->query(); 로 실행 합니다.
좀 더 자세한 사항은 system/database/ 밑에 있는 파일들을 확인해 보시면 CI의 데이터베이스 구조를 이해 하실 것입니다. |
kaido
/
2016/05/17 14:39:55 /
추천
0
만일 쿼리 자체가 실행이 안되고 있다면 CI 문제가 아닙니다. RDB 자체의 권한 부분을 체크 해보셔야 합니다. 오류가 난다면 분명 오류 코드를 나타낼테니, 오류코드를 보여주셔야 정확한 진단이 가능합니다. |
정수리
/
2016/05/17 14:51:23 /
추천
0
아 죄송합니다 미리 오류 코드를 보여 드렸어야 했는데 죄송합니다 $this->load->database('pdo', ture); $this->pdo->query('select * from topic')->result(); 이렇게 사용하였을 경우 Fatal error: Call to a member function query() on null 이라는 오류가 발생하네요; |
한대승(불의회상)
/
2016/05/17 15:14:51 /
추천
0
@정수리 작성된 코드에 오류가 있습니다. 샘플로 제시한 코드와 뭐가 다른지 잘 살펴 보세요. |
정수리
/
2016/05/17 15:43:30 /
추천
0
@불의회상 어느 부분이 오류가 있다는 말씀이시죠? http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo 이곳을 참고하여 작성하였습니다;; |
kaido
/
2016/05/17 15:55:58 /
추천
0
링크로 걸어 놓으신 예제 대로 하시면 정상으로 나올거라 판단 됩니다. 설정 값 빼고 문자 하나 빠트리지 않고 동일 하게 하시면 정상적으로 확인 가능 하실겁니다. 즉 현재 예제 하고 틀리게 작성 했다는 소리가 됩니다. 친절하게 2.x 버전과 3.x 사용 버전 까지 잘 정리해 놓았네요.
|
사용 방법이 잘 못 되었습니다.
아래 처럼 해보세요.
get() 은 쿼리빌더 사용시 사용하는거라 query() 사용시 함께 사용 하시면 안됩니다.