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.