CI 묻고 답하기

제목 SQL문과 코드이그나이터로 한 게 좀 틀리게 나옵니다.
글쓴이 수야디벨 작성시각 2012/12/13 10:54:27
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 15741   RSS



SQL문으로 이렇게 돌리는 거랑 ..

 

select board.*, re_board.* from board left join re_board on board.b_no = re_board.b_no 


CI로 이렇게 쓰는거랑 ,..

$this->db->select('board.*');
$this->db->select('re_board.*');
$this->db->from('board');
$this->db->join('re_board', 'board.b_no = re_board.b_no','left');
  
$query = $this->db->get();
  
return $query->result();

같은 역할을 해주는 코드가 맞지요?ㅠ

그런데, PHPMYADIMN에서 돌린 결과값이랑,

이렇게 써서 받은 결과 값이랑 다르게 나옵니다.

어느 순간부터 모두 null 로 나와요 ..

우선 1차적으로 , 두 코드가 동일한지 부터 판별 후에

다음 원인을 생각해 보야 할 거 같은데.

왜그런걸까요?
 다음글 파일 업로드 및 다운로드 질문 (15)
 이전글 변수 순서에 관계없이 받을 수 있을까요?? (4)

댓글

milosz / 2012/12/13 10:59:22 / 추천 0
 $this->db->last_query() 이용해서 ci에서 생성한 sql 코드를 확인해보세요.
http://codeigniter-kr.org/user_guide_2.1.0/database/helpers.html

제 생각엔 CI에서 자동으로 escape 해주는 부분에서 다른 부분이 있을 것 같네요.
차이를 보이는 액티브레코드에 마지막 파라미터를 false로 주면 도움이 될겁니다.

$this->db->select('re_board.*', false);

이런 식으로 말이죠.
헛발이 / 2012/12/13 11:01:17 / 추천 0
잘 모르시면요~ CI로 한 SQL문장이 정확히 원하는것으로 변환이 되는지 확인 해 보세요~

$query = $this->db->get();

이 문장 다음에

echo $this->db->last_query();

하시면 바로 위에서 실행한 SQL문장을 화면에 출력 해 줍니다..
그 문장이 원하는 문장과 같은지 확인 해 보세요~


앗 한발 늦었땅~

수야디벨 / 2012/12/13 11:05:55 / 추천 0
헛발이 //

실행해 보니 이렇게 나옵니다.
select' board.*', 're_board.*' from' board' left join' re_board' on 'board.b_no' = 're_board'.'b_no'  null

아마 reboard 에 붙여준 'left' 때문에 그러는거 같은데

left 조인하려면, 제가 쓴거처럼 left 써주는게 맞는거지 않나요?ㅜ

아니면 null은 원래 붙나요?
 

$this->db->select('board.*');
$this->db->select('re_board.*');
$this->db->from('board');

$this->db->join('re_board', 'board.b_no = re_board.b_no','left');
  
$query = $this->db->get();
 return $query->result();
변종원(웅파) / 2012/12/13 11:06:18 / 추천 0
전 개발할때는 컨트롤러 생성자에 프로파일러 무조건 켜놓습니다. ^^
헛발이 / 2012/12/13 11:17:13 / 추천 0
저랑은 좀 다르게 사용하시군요~ 음... 틀리지 않다고 생각합니다만..

$this->db->join('re_board as R', 'B.b_no = R.b_no', 'left');
$query = $this->db->get('board as B');
저는 이런식으로 쓰는데....
한대승(불의회상) / 2012/12/13 13:55:28 / 추천 0
이것 저것 복잡하다 생각 되시면

$this->db->query()
추천