ここでの答えはどれも間違っていません。しかし、実際には3つすべてを組み合わせたものが本当の答えです。必ず設定する必要があります
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
セラドが言ったように 。
今後、データベースに関するあらゆる問題は、タイプPDOException
の例外を介してスローされます。 。独自のException
をスローする必要はありません Ladarが言ったように 役に立たないからです。 LIDARを使用するだけです コードを記述して
...
$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';
}
そして、自分で何も投げないでください。
次に、PDOクエリをデバッグするための非常に優れた方法は、基本によってリンクされたcatchスクリプトを使用することです。 ここ で見つけることができます もう一度。
これらを組み合わせることで、発生する可能性のあるすべてのエラーをキャッチするための、柔軟でクリーンでデバッグが容易な方法が得られます。