Inget av svaren här är fel. Men faktiskt alla tre tillsammans är det verkliga svaret. Du bör definitivt ställa in
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
som sagt av Cerad .
Från och med nu kastas varje enskild fråga om allt angående databas via undantag av typen PDOException
. Du behöver bara inte kasta din egen Exception
som sagt av ladar för det är värdelöst. Ta bara ladaren kod och konvertera den till
...
$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';
}
Och kasta INTE något själv.
Ett mycket trevligt sätt att felsöka PDO-frågor är att använda catch-skriptet länkat av Basic som du kan hitta här än en gång.
Genom att kombinera dessa saker får du ett flexibelt, rent och lättfelsökt sätt att fånga upp alla fel som kan komma.