Cette construction "ou" peut être à l'origine du problème, je ferais quelque chose comme :
$result = mysql_query($sql);
if (!$result) {
$this->debug->dbErrors($sql);
}
De cette façon, vous effectuez une vérification explicite pour voir si $result est un faux booléen (la requête est invalide) ou une ressource (la requête est valide). Le but est de n'appeler que $this->debug->dbErrors()
s'il y a effectivement un problème, sinon la façon dont votre code est écrit, chaque requête sera envoyée par e-mail.