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

PDO se recusa a excluir uma linha de dados (na tabela específica)


O PDO::exec() A função retorna o número de linhas afetadas, incluindo 0 se nenhuma linha for afetada.

Uma linha como esta die() porque exec retornará 0 que é interpretado como booleano falso.
$dblink->exec("UPDATE `sometable` SET `somecolumn`=0 WHERE `somecolumn`=0") or die("Never use die for error handling.");

A melhor prática de tratamento de erros para PDO é usar exceções de PDO. Habilite exceções PDO (da classe PDOException, veja docs) assim:
//enable Exception mode (uncaught exceptions work just like die() with the benefit of giving you details in logs of where execution was stopped and for what reason)
$pdoDBHandle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Remova or die() e exit(); e habilite o modo de exceção. Aposto que isso resolverá seu problema "estranho". Veja também como lançar Exceptions em PHP, mesmo com código procedural (para substituir die() e exit() .

BTW exit para a execução assim como die , exceto que é útil no modo CLI porque retorna um código de sucesso/erro para o sistema operacional. Realmente não é para tratamento de erros.