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

Com o PDO, como posso ter certeza de que uma instrução UPDATE foi bem-sucedida?


Depende do que você quer dizer com "bem-sucedido". Se você quer dizer que a consulta foi executada sem falhas, então PDO lançará uma exceção em caso de falha ou retornará FALSE de PDOStatement::execute() , dependendo de qual modo de erro você definiu, então uma consulta "bem-sucedida" nesse caso seria apenas uma em que o método execute não retornou FALSE ou lançar uma exceção.

Se você quer dizer "bem-sucedido" em que havia realmente linhas atualizadas (versus apenas 0 linhas atualizadas), então você precisa verificar isso usando PDOStatement::rowCount() , que informará o número de linhas afetadas da consulta anterior.

Aviso:para atualizações em que newvalue = oldvalue PDOStatement::rowCount() retorna zero. Você pode usar

para desabilitar esse comportamento inesperado.