2014-01-19 2 views
0

MySQL 데이터베이스에서 MySQLi를 사용하여 필드를 업데이트 할 때 영향을받은 행 수를 확인하여 쿼리가 성공적으로 수행되었는지 확인합니다. 필드 값이 실제로 변경되지 않으면 오류 메시지가 나타납니다.MySql 오류 "레코드를 업데이트 할 수 없습니다"오류 번호 0 - 기록 할 변경 사항이 없을 때

Could not update record: (0) 

이 영향을받는 행의 수는 있기 때문에 : 당신은 "UTZ"에 필드 "칩"의 값을 변경하려고하면 예를 들어, 값은 "UTZ"나는 다음과 같은 오류 메시지가 나타날 이미 때 0, 왜 이미 올바른 값을 변경합니다. 이 오류를 피하는 "우수 사례"가 있습니까?

사람들이 데이터베이스에서 "current_time_stamp"값을 업데이트하여 필드가 항상 업데이트되도록하려고하는 것을 목격했습니다. 하지만이 인스턴스를 처리하는 좋은 방법처럼 보이지 않습니다.

내 웹 사이트에서 값이 변경되었는지 확인하려고합니다. 함수를 호출하기 위해 자바 스크립트의 onChange를 사용합니다. 변수를 설정하여 나중에 데이터베이스를 업데이트해야하는지 확인합니다. 그러나 이것이 항상 실제 변화를 가져 오는 것은 아닙니다. 변경이 없더라도 함수가 호출되는 경우가 있습니다. 어떤 제안?

if ($databaseObject->affected_rows) 
    { 
     //echo "Success!<br>"; 
    } 
    else 
    { 
     echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>"; 
    } 

답변

0

에서 명령을 실행할 수 있습니다 : 여기

영향을받는 행의 수를 검사 할 때 내가 사용하는 코드입니다 -1이됩니다. 그렇다면 왜 :

if ($databaseObject->affected_rows != -1) 
    { 
     //echo "Success!<br>"; 
    } 
    else 
    { 
     echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>"; 
    } 
0

쿼리가 제대로, 실행되지 않은 경우 당신은 MySQL의 콘솔

SET SQL_SAFE_UPDATES=0;

관련 문제