Mysql
 sql >> Base de données >  >> RDS >> Mysql

PDO refuse de supprimer une ligne de données (dans une table spécifique)

Le PDO::exec() renvoie le nombre de lignes affectées, y compris 0 si aucune ligne n'est affectée.

Une ligne comme celle-ci die() parce que exec renverra 0 qui est interprété comme booléen faux.

$dblink->exec("UPDATE `sometable` SET `somecolumn`=0 WHERE `somecolumn`=0") or die("Never use die for error handling.");

La meilleure pratique de gestion des erreurs pour PDO consiste à utiliser des exceptions PDO. Activez les exceptions PDO (de la classe PDOException, voir la documentation) comme ceci :

//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);

Supprimer or die() et exit(); et activer le mode exception. Je parie que cela résoudra votre problème "bizarre". Jetez également un œil à la levée d'exceptions en PHP, même avec du code procédural (pour remplacer die() et exit() .

BTW exit arrête l'exécution comme die , sauf qu'il est utile en mode CLI car il renvoie un code de réussite/erreur au système d'exploitation. Ce n'est vraiment pas destiné à la gestion des erreurs.