CI 묻고 답하기

제목 model에서 조건거는 방법이 안먹히네요 ㅠ
카테고리 CI 4 관련
글쓴이 dosona 작성시각 2020/01/08 11:33:50
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14007   RSS

이번에 처음 codeigniter를 접했고 ci4를 적용했습니다.

ci4를 이용하는 중에 model 에서  조건문이 안먹히네요 ㅠ 혹시 제가 잘못한 부분이 있을까요?

<Controller>

public function get($write_no){
    
    $model = new Model\MemberModel();

    $data = $model -> get_mom_data($write_no);

    $data['result'] = $data;

    return view('BlogView', $data);
}

 

<Model>

public function get_mom_data($idx)
{
    $sql = "SELECT * FROM mom_member where idx = ? limit 5";

    $query =$this->db->query($sql,array($idx));

    return $query->getResult();
}

 

이렇게 했을때 var_dump($result) 값이 0 으로 나오네요 ㅠ 

추가로 제가 실행한 쿼리의 쿼리 내용을 출력할수있을까요?

ex) idx=6 으로 받은경우

 $sql = "SELECT * FROM mom_member where idx = ? limit 5";

    $query =$this->db->query($sql,array($idx));

$쿼리내용 = 

SELECT * FROM mom_member where idx = 6 limit 5
 다음글 데이타베이스 트랜젝션에 관한질문입니다. (5)
 이전글 dompdf 사용문의 (4)

댓글

변종원(웅파) / 2020/01/08 11:42:48 / 추천 0

바인딩은 맞게 하셨고 $this->db 가 맞는지 확인 필요합니다.

마지막 쿼리 출력은 http://ci4doc.cikorea.net/database/queries.html?highlight=%EB%B0%94%EC%9D%B8%EB%94%A9#id12 참고하세요.

개발할때는 디버그 툴바 활성화해서 여러 내용을 확인하는게 좋습니다. http://ci4doc.cikorea.net/testing/debugging.html#id4

dosona / 2020/01/08 11:48:24 / 추천 0

답변 감사합니다. 

혹시 $this->db 가 맞는지 확인이 필요하다는 말씀이 어떤 말인지 알 수 있을까요?

조건없이 select * from mom_member limit 5 이런식으로 하면 값은 출력됩니다 

변종원(웅파) / 2020/01/08 14:18:40 / 추천 0

dosona/ 조건절 없이 출력해서 나온다면 연결에 대한 문제는 없는 것이구요($this-db)

최종 쿼리 출력해서 보세요.

dosona / 2020/01/08 14:23:04 / 추천 0

확인해보니 

"SELECT * FROM mom_member where idx =  limit 5;

이렇게 출력되네요 ㅠ

바인딩이 잘못됐나봅니다 ㅠ

dosona / 2020/01/08 14:54:40 / 추천 0

자답입니다.

바인딩까지는 맞았었습니다.

a 태그를 통해 url을 이동해서 파라미터를 넘겨주는 방향이었는데, 파라미터가 잘못되었습니다.

다음 형식으로 넘겨 주었을때 번호만 넘겨줄주 알았는데 write_no 해당 파라미터까지 같이 넘어가서 안되던 현상이였습니다.

순수 php 유저였어서 헷갈렸네요..

<a href="/Pages/get/write_no=<?= $row->idx ?>">

 

변종원(웅파) / 2020/01/08 18:05:52 / 추천 0
그래서 개발할때 디버깅 모드 켜놓으면 전송되는 파라미터와 쿼리 등등  데이터를 참고할 수 있습니다. ^^