Mysql
 sql >> база данни >  >> RDS >> Mysql

PDO отказва да изтрие ред данни (в конкретна таблица)

PDO::exec() функцията връща броя на засегнатите редове, включително 0, ако няма засегнати редове.

Ред като този ще die() защото exec ще върне 0 което се тълкува като булева false.

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

Най-добрата практика за обработка на грешки за PDO е да се използват PDO изключения. Активирайте PDO изключения (на клас PDOException, вижте документи) по следния начин:

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

Премахнете or die() и exit(); и активирайте режима на изключение. Обзалагам се, че това ще реши вашия "странен" проблем. Също така разгледайте хвърлянето на изключения в PHP, дори с процедурен код (за замяна на die() и exit() .

BTW exit спира изпълнението точно както die , освен че е полезен в режим CLI, защото връща код за успех/грешка на операционната система. Той наистина не е предназначен за обработка на грешки.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да съхранявам поръчки?

  2. Помощ за MySql заявка - Редовете, държащи груповия максимум на определена колона

  3. mysql КЪДЕ МАЧ СРЕЩУ

  4. php while променлива за всеки трети div

  5. Не мога да разбера как да стартирам mysqli_multi_query и да използвам резултатите от последната заявка