sql >> Database >  >> RDS >> Mysql

PDO weigert een rij gegevens te verwijderen (in specifieke tabel)

De PDO::exec() functie retourneert het aantal betrokken rijen, inclusief 0 als er geen rijen zijn.

Een regel als deze zal die() omdat exec retourneert 0 wat wordt geïnterpreteerd als boolean false.

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

De beste foutafhandelingspraktijk voor PDO is om PDO-uitzonderingen te gebruiken. Schakel PDO-uitzonderingen (van de PDOException-klasse, zie documenten) als volgt in:

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

Verwijder or die() en exit(); en schakel de uitzonderingsmodus in. Ik wed dat dit je "rare" probleem zal oplossen. Kijk ook eens naar het gooien van Exceptions in PHP, zelfs met procedurele code (ter vervanging van die() en exit() .

BTW exit stopt de uitvoering net als die , behalve dat het handig is in de CLI-modus omdat het een succes-/foutcode terugstuurt naar het besturingssysteem. Het is echt niet bedoeld voor foutafhandeling.




  1. PostgreSQL geneste JSON-query's

  2. Maximum aantal records in een MySQL-databasetabel

  3. Hardwaretrends voor databaseservers

  4. Hoe cx_oracle te bundelen met Pyinstaller