Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich bei PDO sicherstellen, dass eine UPDATE-Anweisung erfolgreich war?

Es kommt darauf an, was Sie unter „erfolgreich“ verstehen. Wenn Sie meinen, dass die Abfrage ohne Fehler ausgeführt wurde, dann PDO löst entweder bei einem Fehler eine Ausnahme aus oder gibt FALSE zurück aus PDOStatement::execute() , abhängig davon, welchen Fehlermodus Sie eingestellt haben, also wäre eine "erfolgreiche" Abfrage in diesem Fall nur eine, bei der die Ausführungsmethode FALSE nicht zurückgegeben hat oder eine Ausnahme auslösen.

Wenn Sie "erfolgreich" meinen, da tatsächlich Zeilen aktualisiert wurden (im Gegensatz zu nur 0 aktualisierten Zeilen), müssen Sie dies mit PDOStatement::rowCount() , die Ihnen die Anzahl der betroffenen Zeilen aus der vorherigen Abfrage mitteilt.

Warnung:Für Updates mit newvalue = oldvalue PDOStatement::rowCount() gibt Null zurück. Sie können

verwenden

um dieses unerwartete Verhalten zu deaktivieren.