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

Come utilizzare il blocco try-catch per PDO

Nessuna delle risposte qui è sbagliata. Ma in realtà tutti e tre messi insieme sono la vera risposta. Dovresti assolutamente impostare

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

come detto da Cerad .

D'ora in poi ogni singolo problema relativo a qualsiasi cosa relativa al database viene generato tramite un'eccezione di tipo PDOException . Non devi semplicemente lanciare la tua Exception come detto da ladar perché è inutile. Prendi il ladar codice e convertirlo in

 ...
 $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';
    }

E NON lanciare nulla da solo.

Quindi un modo molto interessante per eseguire il debug delle query PDO è utilizzare lo script catch collegato da Base che puoi trovare qui ancora una volta.

Combinando queste cose insieme avrai un modo flessibile, pulito e di facile debug per catturare tutti gli errori che potrebbero verificarsi.