Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como saber se uma consulta MySQL UPDATE falha porque as informações fornecidas correspondem aos dados que já estão no banco de dados?


Outro motivo para você obter 0 linhas afetadas é se o UPDATE instrução não corresponde a nenhuma linha. Por exemplo:
UPDATE MyTable SET field = 'content' WHERE id = 1234;

Fornece 0 linhas afetadas se nenhuma linha existir com id = 1234 . Isso também não é um erro, é apenas um UPDATE que aconteceu de não corresponder a nenhuma linha.

A maneira de detectar este caso é usar SELECT para verificar se existe tal linha. Se você puder confirmar que a linha existe, mas o UPDATE disse que afetou 0 linhas, então você sabe que os valores que você tentou alterar eram de fato as linhas que já estavam no banco de dados.
SELECT COUNT(*) FROM MyTable WHERE id = 1234;

Mas a distinção pode não ser importante. Você pode relatar um erro se mysql_error() diz que há um, como sugere @BoltClock.*Se não houver erro, você pode simplesmente relatar "sem alteração" ao usuário.