Dalším důvodem, proč byste získali 0 ovlivněných řádků, je UPDATE
příkaz neodpovídá žádné řádky. Například:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
Poskytuje 0 ovlivněných řádků, pokud neexistuje žádný řádek s id = 1234
. To také není chyba, je to jen UPDATE
které náhodou neodpovídají žádným řádkům.
Způsob, jak zjistit tento případ, je použít SELECT
pro ověření, že takový řádek existuje. Pokud můžete potvrdit, že řádek existuje, ale UPDATE
řekl, že to ovlivnilo 0 řádků, pak víte, že hodnoty, které jste se pokusili změnit, byly ve skutečnosti řádky již v databázi.
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
Ale rozdíl nemusí být důležitý. Pokud mysql_error()
, můžete nahlásit chybu říká, že jeden existuje, jak navrhuje @BoltClock.*Pokud nedojde k žádné chybě, můžete uživateli nahlásit „žádná změna“.