sql >> Base de Datos >  >> RDS >> Mysql

Cómo usar el bloque try-catch para PDO

Ninguna de las respuestas aquí es incorrecta. Pero en realidad los tres combinados son la respuesta real. Definitivamente deberías establecer

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

como dijo Cerad .

A partir de ahora, todos los problemas relacionados con la base de datos se lanzan a través de una excepción de tipo PDOException . Simplemente no tienes que lanzar tu propia Exception como dijo ladar porque es inútil. Solo toma el ladar código y convertirlo en

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

Y NO tires nada tú solo.

Entonces, una forma muy buena de depurar consultas PDO es usar el script catch vinculado por Basic que puedes encontrar aquí una vez más.

Combinando estas cosas, tendrá una forma flexible, limpia y fácil de depurar para detectar todos los errores que puedan surgir.