Io solitamente in questi casi faccio così, faccio lanciare a mysqli/pdo delle exception sugli errori.
Per attivarle vedi: http://php.net/manual/en/function.mysqli-report.php
Dentro ai try catch gestisco gli errori delle eccezioni come preferisco loggando manualmente tramite un logger tipo monolog.