Essa construção 'ou' pode estar causando problemas, eu faria algo como:
$result = mysql_query($sql);
if (!$result) {
$this->debug->dbErrors($sql);
}
Dessa forma, você está fazendo uma verificação explícita para ver se $result é um booleano falso (a consulta é inválida) ou um recurso (a consulta é válida). O ponto é apenas chamar
$this->debug->dbErrors()
se realmente houver um problema, caso contrário, a forma como seu código está escrito, todas as consultas serão enviadas por e-mail.