| 제목 | 디비 쿼리 문제 ?? | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 람이 | 작성시각 | 2017/04/21 11:14:50 | 
|  | |||
| [ 쿼리 실행 ] 
//룸 날짜별 단가 기록
$room_price_sql = "SELECT * 
							FROM `ci_reserve_rooms_price` 
							WHERE `rv_code` = '".$rv_code."'
							AND `room_sdate` = '".$room_date."'
							AND `hotel_req` = ".$this->db->escape($hotel_req)."
							AND `room_no` = '".$Room_row[$x]->room_no."'
";
echo $room_price_sql."<br />";
$room_price_query = $this->db->query($room_price_sql);
if($room_price_query->num_rows()>0) {
	$room_price_res = $room_price_query->row();
	$rooms_sql = "UPDATE `ci_reserve_rooms_price` SET
						`hotel_req` = ".$this->db->escape($hotel_req).",
						`ho_req` = '".$ho_req."',
						`room_no` = '".$Room_row[$x]->room_no."',
						`bed_type` = '".$Room_row[$x]->bed_type."',
						`room_sdate` = '".$room_date."',
						`room_term1` = '".$rm_term1."',
						`room_term2` = '".$rm_term2."',
						`wonga_exch` = '".$wonga_room_exch."',
						`wonga_price` = '".$wonga_room_price."',
						`wonga_surch` = '".$wonga_room_surch."'
						WHERE `rvl_req` = '".$room_price_res->rvl_req."'
	";
	echo $rooms_sql."<br />";
	$this->db->query($rooms_sql);
} else {
	$rooms_sql = "INSERT INTO `ci_reserve_rooms_price` SET
						`rvl_req` = '".$Room_row[$x]->rvl_req."',
						`rv_code` = '".$rv_code."',
						`hotel_req` = ".$this->db->escape($hotel_req).",
						`ho_req` = '".$ho_req."',
						`room_no` = '".$Room_row[$x]->room_no."',
						`bed_type` = '".$Room_row[$x]->bed_type."',
						`room_sdate` = '".$room_date."',
						`room_term1` = '".$rm_term1."',
						`room_term2` = '".$rm_term2."',
						`wonga_exch` = '".$wonga_room_exch."',
						`wonga_price` = '".$wonga_room_price."',
						`wonga_surch` = '".$wonga_room_surch."'
	";
	echo $rooms_sql."<br />";
	$this->db->query($rooms_sql);
}
 SELECT * FROM `ci_reserve_rooms_price` WHERE `rv_code` = 'MH-170421-0002' AND `room_sdate` = '2017-05-01' AND `hotel_req` = '1' AND `room_no` = '1' ==> 존해함 ==> UPDATE `ci_reserve_rooms_price` SET `hotel_req` = '1', `ho_req` = '1', `room_no` = '1', `bed_type` = 'TWN', `room_sdate` = '2017-05-01', `room_term1` = '3', `room_term2` = '4', `wonga_exch` = 'CNY', `wonga_price` = '560', `wonga_surch` = '' WHERE `rvl_req` = '16' SELECT * FROM `ci_reserve_rooms_price` WHERE `rv_code` = 'MH-170421-0002' AND `room_sdate` = '2017-05-02' AND `hotel_req` = '1' AND `room_no` = '1' ==> 존재하는데 인서트가 되고 있습니다. ==> INSERT INTO `ci_reserve_rooms_price` SET `rvl_req` = '16', `rv_code` = 'MH-170421-0002', `hotel_req` = '1', `ho_req` = '1', `room_no` = '1', `bed_type` = 'TWN', `room_sdate` = '2017-05-02', `room_term1` = '3', `room_term2` = '4', `wonga_exch` = 'CNY', `wonga_price` = '560', `wonga_surch` = '' SELECT * FROM `ci_reserve_rooms_price` WHERE `rv_code` = 'MH-170421-0002' AND `room_sdate` = '2017-05-03' AND `hotel_req` = '1' AND `room_no` = '1' ==> 존재하는데 인서트가 되고 있습니다. ==> INSERT INTO `ci_reserve_rooms_price` SET `rvl_req` = '16', `rv_code` = 'MH-170421-0002', `hotel_req` = '1', `ho_req` = '1', `room_no` = '1', `bed_type` = 'TWN', `room_sdate` = '2017-05-03', `room_term1` = '3', `room_term2` = '4', `wonga_exch` = 'CNY', `wonga_price` = '560', `wonga_surch` = '' 
 위 쿼리문을 실행하면 이상하게 3일자에 모두 데이타가 있어서 INSERT가 되면 안되는데 하나만 UPDATE가 되고 나머지2개가 INSERT가 되고 있는데 무슨 이유인지 알 수 없어 질문 남깁니다. 도와 주세요 ^^ | |||
| 태그 | mysql,php | ||
| 다음글 | application 상위폴더로 admin 루트를 만들... (2) | ||
| 이전글 | ajax 배열 데이터 컨트롤러에서 받기 (4) | ||
| 
                                배강민
                                /
                                2017/04/21 12:25:15 /
                                추천
                                0
                             
                                html이 꼬여서 화면이 깨져서 좀 수정했습니다.
                             | 
| 
                                변종원(웅파)
                                /
                                2017/04/21 12:25:26 /
                                추천
                                0
                             4개의 and 조건중 하나라도 다르면 insert 되겠죠. 코드는 거짓말을 하지 않습니다. ^^ 데이터 비교를 해보세요. 
 날짜가 다르네요. ㅎㅎ | 
| 
                                닉
                                /
                                2017/04/21 12:31:04 /
                                추천
                                0
                             
                                동시성 문제 아닐까요 ? select for ~ update 구문으로 락 걸고서 insert update 해보심이..?
                             | 
| 
                                어린양
                                /
                                2017/04/21 21:19:50 /
                                추천
                                0
                             
                                $room_price_query->num_rows()  찍어보세요.
                             |