sql >> Base de Datos >  >> RDS >> Mysql

PDO se niega a eliminar una fila de datos (en una tabla específica)

El PDO::exec() La función devuelve el número de filas afectadas, incluido 0 si no hay filas afectadas.

Una línea como esta die() porque exec devolverá 0 que se interpreta como falso booleano.

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

La mejor práctica de manejo de errores para PDO es usar excepciones de PDO. Habilite las excepciones de PDO (de la clase PDOException, consulte los documentos) como esta:

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

Eliminar or die() y exit(); y habilite el modo de excepción. Apuesto a que esto solucionará tu problema "raro". También eche un vistazo a lanzar Excepciones en PHP, incluso con código de procedimiento (para reemplazar die() y exit() .

Por cierto exit detiene la ejecución como die , excepto que es útil en modo CLI porque devuelve un código de éxito/error al sistema operativo. Realmente no está diseñado para el manejo de errores.