Друга причина да получите 0 засегнати реда е, ако UPDATE
изявление не съответства на редове. Например:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
Дава 0 засегнати реда, ако не съществува ред с id = 1234
. Това също не е грешка, а просто UPDATE
това не съответства на редове.
Начинът за откриване на този случай е да използвате SELECT
за да проверите дали има такъв ред. Ако можете да потвърдите, че редът съществува, но UPDATE
каза, че засяга 0 реда, тогава знаете, че стойностите, които сте се опитали да промените, всъщност са редовете, които вече са в базата данни.
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
Но разликата може да не е важна. Можете да съобщите за грешка, ако mysql_error()
казва, че има такава, както предполага @BoltClock.*Ако няма грешка, можете просто да докладвате „без промяна“ на потребителя.