En annan anledning till att du skulle få 0 berörda rader är om UPDATE
uttalande matchar inga rader. Till exempel:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
Ger 0 påverkade rader om det inte finns någon rad med id = 1234
. Detta är inte heller ett fel, det är bara en UPDATE
som råkade matcha inga rader.
Sättet att upptäcka detta fall är att använda SELECT
för att verifiera att det finns en sådan rad. Om du kan bekräfta att raden finns, men UPDATE
sa att det påverkade 0 rader, då vet du att värdena du försökte ändra faktiskt var de rader som redan fanns i databasen.
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
Men skillnaden kanske inte är viktig. Du kan rapportera ett fel om mysql_error()
säger att det finns en, som @BoltClock föreslår.*Om det inte finns något fel kan du bara rapportera "ingen förändring" till användaren.