질문 Q #18430
update_batch에 대해 질문있습니다.
LIA 2017-08-03 11:38:02

안녕하세요 update_batch를 이용하여 다중update를 사용하려고 합니다.

active record 메뉴얼을 보니 

 

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name 2' ,
      'date' => 'My date 2'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name 2' ,
      'date' => 'Another date 2'
   )
);

$this->db->update_batch('mytable', $data, 'title'); 

// Produces: 
// UPDATE `mytable` SET `name` = CASE
// WHEN `title` = 'My title' THEN 'My Name 2'
// WHEN `title` = 'Another title' THEN 'Another Name 2'
// ELSE `name` END,
// `date` = CASE 
// WHEN `title` = 'My title' THEN 'My date 2'
// WHEN `title` = 'Another title' THEN 'Another date 2'
// ELSE `date` END
// WHERE `title` IN ('My title','Another title')

 

이런식으로 사용하시더라구요, 근데 전 where절을 두개 넣고싶은데,

그럴때는 $this->db->update_batch('mytable', $data, 'title', 'test') <!-- (test라는 임의의 값이 배열에 있다고 치겠습니다.) -->

이런식으로 2개이상의 where절을 사용할 수 있을까요? 아니면 2개 이상의 where절은 따로 추가하는 방식이 있나요?

 

답변 2
#1 변종원(웅파) 2017-08-03 22:54:32

간혹 매뉴얼에 없는데 작동하는 기능이 있긴 합니다만 매뉴얼 읽어보시고 없으면 안되는 거구요.

system 디렉토리에서 해당 함수 찾아서 열어보세요. 데이터베이스 부분은 확장이 안되서 직접 수정해서 사용하셔야 합니다.

#2 LIA 2017-08-04 10:37:58

웅파님 답변 감사합니다.

이부분은 active record를 사용하지않고 처리했습니다.