채택완료

쿼리문은 실행되는데 db에서 변하는게 없습니다.

2022-01-18 (화) 13:15:10 4,149
Copy
$sql_update = "UPDATE g5_member_revenue SET give_ratio = $revenue_ratio WHERE mb_id = '$id' AND in_quarter = '$in_quarter'";          

                $result_revenue_update = sql_query($sql_update);

                $sql_update = "UPDATE g5_member_revenue SET this_revenue = $this_revenue WHERE mb_id = '$id' AND in_quarter = '$in_quarter'";          

                $result_revenue_update = sql_query($sql_update);

                $sql_update = "UPDATE g5_member_revenue SET total_revenue = $total_revenue WHERE mb_id = '$id' AND in_quarter = '$in_quarter'";          

                $result_revenue_update = sql_query($sql_update);

                $sql_update = "UPDATE g5_member_revenue SET give_day = $give_day WHERE mb_id = '$id' AND in_quarter = '$in_quarter'";          

                $result_revenue_update = sql_query($sql_update);

            }

            if($result_revenue_update === false) {

                echo '쿼리에러';

            }else{

                echo '쿼리성공';

            }

위와 같이 작성했는데요. 쿼리성공이라고 뜨고 db에선 변하는 게 없습니다. 왜 이런지 아시나요?

|

답변 3개 / 댓글 4개

채택된 답변
+20 포인트
2022-01-18 (화) 13:30:37

쿼리문이 잘못되셨다는걸텐데 쿼리를 echo 로 찍어서 db프로그램에서 직접 실행해보세요.

그냥 봤을땐 set 값 넣는곳에 '' 해서 안감싸준게 걸리긴하네요. 

답변에 대한 댓글 1개

2022-01-18 (화) 14:56:43
'' 감싸니까 되네요..후 감사합니다

쿼리는 한번만 실행 하도록 만들면 되는데 쿼리문을 이렇게 만들어서  서버에 부하를 주고 느리게 만들 일 있나요?

$result_revenue_update = sql_query("UPDATE g5_member_revenue SET give_ratio = '$revenue_ratio', 
this_revenue = '$this_revenue' ,total_revenue = '$total_revenue', give_day = '$give_day'

WHERE mb_id = '$id' AND in_quarter = '$in_quarter' ", true);

마지막에 true 넣어보면 쿼리문에 문제가 있다면 에러코드가 나옵니다
 

답변에 대한 댓글 1개

2022-01-18 (화) 14:56:24
와... 대박입니다.. 감사해요
2022-01-18 (화) 13:19:11

0 개 행에 반영되어도 틀린건 아니니까요

근데 쿼리는 다섯개인데 체크 하는건 한번만 하는건가요?

각 쿼리를 직접 돌려보세요

답변에 대한 댓글 2개

2022-01-18 (화) 13:19:43
빈값체크도 해봐야겠군요. 감사합니다 각 쿼리에도 넣어봐야겟어요
2022-01-18 (화) 13:25:27
각 쿼리를 체크 해보았는데요. 쿼리성공이라 출력되는군요.

그래서 else if에 sql_num_rows($result_revenue_update > 0) echo '빈값X'; 도 출력이 되네요

답변을 작성하려면 로그인이 필요합니다.