채택완료

update 기본적인 질문요..

2016-06-20 (월) 17:58:38 10,511

초보라서 죄송합니다..

sql_query("update $g4[group_table] set gr_4='$exg_PHP' where gr_1 = 'center' and gr_5 = 'PHP' and gr_10 = 'Y' and gr_1_subj='1' ");

이런 쿼리가 있다면요...

where 뒤에 붙는 조건에 해당하는 레코드가 없다면...

어찌되나요? 그냥 넘어가나요? 오류나나요? 

|

답변 3개

채택된 답변
+20 포인트

where절의 조건에 해당하는 레코드가 없다면.. 구문에 이상만 없으면 오류없이 그냥 단순하게 실행결과가 없는, 변경되는 값이 없는 상태로 끝납니다.

update문이나 delete문에 의해 적용된 레코드수는 mysql_affected_rows() 나 mysqli_affected_rows() 를 이용해서 확인이 가능합니다.

http://php.net/manual/kr/function.mysql-affected-rows.php

where 절이 없다고 해서 에러가 나지 않습니다.

그 이유는 구문오류가 있는것은 아니니까요.

단지 조건이 없이 모든 컬럼에 대해서 (위의 경우라면)

gr_4='$exg_PHP' 즉, gr_4에 변수 $exg_PHP 값을 넣게 되겠네요.

where절이 없으면 테이블 전체 row가 영향을 받는걸로 알고 있습니다 

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