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

So verwenden Sie den Try-Catch-Block für PDO

Keine der Antworten hier ist falsch. Aber eigentlich sind alle drei zusammen die richtige Antwort. Sie sollten auf jeden Fall

setzen
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

wie gesagt von Cerad .

Von nun an wird jedes einzelne Problem in Bezug auf Datenbanken über eine Ausnahme vom Typ PDOException ausgelöst . Sie müssen nur nicht Ihre eigene Exception werfen wie gesagt von ladar weil es nutzlos ist. Nehmen Sie einfach den Ladar code und wandle ihn in

um
 ...
 $data = array();
 $model = new BlogModel;

    try{
      $model->save(2,'test');
      $data['result']['message'] = 'Settings saved';
      $data['result']['status'] = 'success';
    }catch(PDOException $e){
        $data['result']['message'] = 'Could not save the settings';
        $data['result']['status'] = 'error';
    }

Und werfen Sie nichts alleine.

Dann ist eine sehr gute Möglichkeit zum Debuggen von PDO-Anfragen das von Basic verlinkte catch-Skript zu verwenden die Sie hier finden können noch einmal.

Wenn Sie diese Dinge miteinander kombinieren, haben Sie eine flexible, saubere und einfach zu debuggende Möglichkeit, alle Fehler abzufangen, die auftreten könnten.