sql >> Database teknologi >  >> RDS >> Mysql

PDO nægter at slette en række data (i specifik tabel)

PDO::exec() funktion returnerer antallet af berørte rækker, inklusive 0, hvis ingen rækker er berørt.

En linje som denne vil die() fordi exec returnerer 0 som fortolkes som boolesk falsk.

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

Den bedste fejlhåndteringspraksis for PDO er at bruge PDO-undtagelser. Aktiver PDO-undtagelser (af PDOException-klassen, se dokumenter) sådan her:

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

Fjern or die() og exit(); og aktiver undtagelsestilstand. Jeg vil vædde på, at dette vil løse dit "mærkelige" problem. Tag også et kig på at smide undtagelser i PHP, selv med procedurekode (for at erstatte die() og exit() .

BTW exit stopper eksekveringen ligesom die , bortset fra at den er nyttig i CLI-tilstand, fordi den returnerer en succes-/fejlkode til operativsystemet. Det er virkelig ikke beregnet til fejlhåndtering.




  1. Hvordan opdager man, om en streng indeholder specialtegn?

  2. få tælling fra den samme kolonne i en mysql-tabel?

  3. Maksimal størrelse på UNIKT indeks i MySQL

  4. Konverter SQLITE SQL dump-fil til POSTGRESQL