En anden grund til, at du får 0 berørte rækker, er, hvis UPDATE
sætningen matcher ingen rækker. For eksempel:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
Giver 0 berørte rækker, hvis der ikke findes en række med id = 1234
. Dette er heller ikke en fejl, det er bare en UPDATE
der tilfældigvis ikke matchede nogen rækker.
Måden at opdage dette tilfælde er at bruge SELECT
for at verificere, at der er sådan en række. Hvis du kan bekræfte, at rækken eksisterer, men UPDATE
sagde det påvirkede 0 rækker, så ved du, at de værdier, du forsøgte at ændre, faktisk var de rækker, der allerede var i databasen.
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
Men forskellen er måske ikke vigtig. Du kan rapportere en fejl, hvis mysql_error()
siger, at der er en, som @BoltClock foreslår.*Hvis der ikke er nogen fejl, kan du bare rapportere "ingen ændring" til brugeren.