Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PDO odmawia usunięcia wiersza danych (w określonej tabeli)

PDO::exec() funkcja zwraca liczbę dotkniętych wierszy, w tym 0, jeśli żaden wiersz nie jest dotknięty.

Linia taka jak ta spowoduje die() ponieważ exec zwróci 0 co jest interpretowane jako boolean false.

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

Najlepszą praktyką obsługi błędów dla PDO jest użycie wyjątków PDO. Włącz wyjątki PDO (klasy PDOException, patrz doc) w następujący sposób:

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

Usuń or die() i exit(); i włącz tryb wyjątków. Założę się, że to rozwiąże twój „dziwny” problem. Spójrz także na rzucanie wyjątków w PHP, nawet z kodem proceduralnym (aby zastąpić die() i exit() .

BTW exit zatrzymuje wykonywanie tak jak die , z wyjątkiem tego, że jest użyteczny w trybie CLI, ponieważ zwraca kod sukcesu/błędu do systemu operacyjnego. To naprawdę nie jest przeznaczone do obsługi błędów.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 sposoby na wyświetlenie listy wszystkich tabel w bazie danych MySQL

  2. Jak uznać NULL za datę MAX, zamiast ignorować ją w MySQL?

  3. Kaskadowe pole kombi formularza dostępu nie pokazuje nic w rozwijanym menu

  4. Połączenie MySQL przez tunel SSH - jak określić inny serwer MySQL?

  5. Uzyskaj tylko rekordy utworzone dzisiaj w laravel