2010-05-27 2 views
0

$sql = "UPDATE...."; 조건 경우 컴파일러는 내부 오는되지 않는 이유레코드를 아는 방법은 PHP에서 성공적으로 업데이트되었습니다.

if(mysql_query($sql)) 
    { 
     $_SESSION['Trans']="COMMIT"; 
     header("location:result.php"); 
     exit; 
    } 
    else 
     { 
      $_SESSION['Trans']="FAIL"; 
      $_SESSION['errors'] = "Error: Sorry! We are unable to update your Profile, Please contact to PNP HelpDesk."; 
      header("location:result.php"); 
      exit; 
     }//end IF 

데이터는 업데이트지고 있습니다.

답변

2

mysql_query은 행이 업데이트되지 않은 경우가 아니라 오류 조건에서만 FALSE를 반환합니다.

$sql = 'UPDATE ....'; 
mysql_query($sql); 
if (mysql_affected_rows() > 0) { 
    // Success 
} else { 
    // Failure 
}
+2

는하지 않지만, SQL 문, INSERT, UPDATE, DELETE, DROP, 등,는 mysql_query의 다른 유형에 대해 (:

아무것도가 업데이트 된 경우, 예를 들어 mysql_affected_rows 사용을 참조하십시오) 성공하면 TRUE를, 실패하면 FALSE를 반환합니다. 하지만 여전히 변수에 할당하고 더 암시적인'if ($ result === true) ' –

+0

@DavidYell로 테스트 할 것입니다. 필자는 문서의 간단한 확인을했고 반환 유형은'mixed'가 아닌'resource'로 주어 졌으므로 계속 읽지 않았습니다. 어느 쪽의 방법이라도, 행에 영향을주는 UPDATE는 여전히 "성공"이므로, 여전히 mysql_affected_rows가 필요하다. – Chris

+0

에러시 FALSE를 반환한다. 업데이트 된 행은 오류가 없지만 데이터와 where 절에 따라 데이터베이스 POV의 올바른 올바른 동작입니다. – johannes

관련 문제