CI 묻고 답하기

제목 $quert->result 사용법이;;
글쓴이 정수리 작성시각 2016/06/15 15:08:35
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 16738   RSS

1%라도 해본 질문 vs. 1%도 안해본 질문, 여러분은 어떤 질문에 손이 가십니까?

액티브 레코드를 사용하다가 서브쿼리구현이 힘들것 같아

메뉴얼을 통해 쿼리 바인딩을 사용하였습니다;

db까지는 데이터가 저장이 되는것 을 확인하였습니다.

이 저장된 데이터를 불러와 controller 쪽으로 보내줘야 하는데 그게 쉽게 되지않네요;

$sql='insert into item(ur_pk,item_title,item_ct,item_im,item_pr,item_da,cg_pk,cg2_pk,item_wk,item_multi) values((select ur_pk from user where ur_id = ?),?,?,?,?,now(),?,?,?,?)';
	$result=$this->db->query($sql, array($id, $item['item_title'], $item['item_ct'], $item['item_im'], $item['item_pr'], $item['cg_pk'], $item['cg2_pk'], $item['item_wk'], $item['item_multi']));
	var_dump($result);//확인용

if(! $result){//실패할경우 에러메시지 출력
			$error=$this->db->error();
			echo $error['code'];
			echo $error['message'];
		}else{
			$test = $result->result();
			return $test;//db에 결과를 가져와 controller 쪽으로 보내줘야 하는데..

메뉴얼을 보면서 해보긴 하였는데 잘 되지 않네요;; 제가 잘못 사용하고 있는 것일까요?

에러메시지:Call to a member function result() on boolean 이 메세지를 출력합니다.

 

 다음글 CI URL 경로 질문. (3)
 이전글 주소에서 controllers 제거?하기 (1)

댓글

한대승(불의회상) / 2016/06/15 15:33:42 / 추천 0
당연히 select 쿼리를 DB에 던져야죠. ^^
정수리 / 2016/06/15 15:37:19 / 추천 0

@한대승

아 제가 멍청했네요;;

아무쿼리도 안날려주면서 ㅋㅋ 값이 안나온다고 하였다니;;

계속 모니터만봐서 그런지 ㅋㅋㅋ 중요한것 잊고 있었네요 ㅋㅋ감사합니다

한대승(불의회상) / 2016/06/16 13:30:08 / 추천 0

첨언하자면 쿼리빌더를 사용하여 insert, update에  서브 쿼리를 사용하고 싶다면 set() 메소드를 이용하면 됩니다.

$data = array(
  'a' => 1,
  'b' => 2,
);

$this->db->set('c', "(select id from tbl where id=123)", false);
$this->db->insert('ntbl', $data);