Otra razón por la que obtendría 0 filas afectadas es si UPDATE
declaración no coincide con filas. Por ejemplo:
UPDATE MyTable SET field = 'content' WHERE id = 1234;
Da 0 filas afectadas si no existe ninguna fila con id = 1234
. Esto tampoco es un error, es solo una UPDATE
eso no coincidió con ninguna fila.
La forma de detectar este caso es usar SELECT
para verificar que existe tal fila. Si puede confirmar que la fila existe, pero UPDATE
dijo que afectó a 0 filas, entonces sabe que los valores que intentó cambiar eran, de hecho, las filas que ya estaban en la base de datos.
SELECT COUNT(*) FROM MyTable WHERE id = 1234;
Pero la distinción puede no ser importante. Podría reportar un error si mysql_error()
dice que hay uno, como sugiere @BoltClock.*Si no hay ningún error, simplemente podría informar "sin cambios" al usuario.