| 제목 | 디비 쿼리 문제 ?? | ||
|---|---|---|---|
| 카테고리 | 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() 찍어보세요.
|