CI 묻고 답하기

제목 select를 제외한 db명령어들도 결과를 기다리나요?
글쓴이 오렌G 작성시각 2011/12/07 11:57:51
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 16261   RSS
$this->db->get 과 같은 것들은 어짜피 DB내용 자체에 변화를 주지 않는 거라서 별 문제 없이 사용하고 있습니다.

그런데
$this->db->update 후에
$this->db->get 으로 update된 데이터를 가지고 올 경우에는 문제가 없을까요?

ci에서 update나 insert같은 경우 DB에서 해당 쿼리를 수행한 결과를 끝까지 기다리고 다음으로 넘어가는건지..
아니면 DB에 쿼리요청만 해놓고 다음 라인으로 넘어가서 DB내부에서 update를 먼저 했는지 get을 먼저했는지
판단할 수 없기 때문에 프로시저문이나 다른 방법을 써야하는건지 궁금합니다.(이 경우엔 잘못하다 update가
아직 안된 데이터가 get 될 수 있겠죠..)

고수님들의 답변 부탁 드립니다^^
 다음글 업로드한 파일정보 db입력 (3)
 이전글 <?=CSS_DIR?> 이게 ... (3)

댓글

한대승(불의회상) / 2011/12/07 12:04:00 / 추천 0
아직 까지 문제가 없었습니다. ^^
변종원(웅파) / 2011/12/07 15:17:47 / 추천 0
update 결과 적용된 row가 있을때 다른 액션을 취하게 하거나
insert의 경우는 insert_id 값이 있을때(insert가 성공한 경우) 다음 액션을 취하게 합니다.

테이블락을 걸고 하기도 하지만 그렇게까지할 필요는 없어서.....

이도저도 귀찮으면 트랜잭션을.... ^^
한대승(불의회상) / 2011/12/07 16:36:04 / 추천 0
트랜젝션 사용 하실땐 innodb로 엔진을 바꿔 주세요 ^^
오렌G / 2011/12/07 16:51:15 / 추천 0
결과적으로 update의 경우는 적용된 행이 있을 때, insert는 insert가 성공했을 때 ci에서 다음 줄 코드로 넘어가기 때문에 ci에서 update 후 그 update된 데이터를 get해와도 문제가 될건 없는거군요:?
변종원(웅파) / 2011/12/07 17:48:27 / 추천 0
오렌G/ if문으로 성공했을때 다음 액션을 취하게 하면 되는거죠