あなた自身に尋ねる必要があることは、同じ方法ですべてのデータベースエラーを処理するかどうかということです。 dbに接続できない場合は、重大なエラーで、dbサーバーがダウンしている可能性があります。そのような場合には、緊急のアラートを送信することが必要な場合があります(DBを別の方法で監視していない場合)。 SQL構文エラーのためにクエリが失敗した場合は、おそらく入力データをエスケープしていないか、どこかのコードにバグがあります。この場合、できるだけ多くの情報をログに記録して、後で問題をデバッグ/ソートすることができます。
それでは、最初に必要となるのは、mysqli関数をラップして、さまざまなエラーをトラップして、必要な方法を処理できるようにすることです(独自のDBクラスを作成するか、独自の関数) - PHPドキュメントでは、これをどのようにして開始するかに関する例を示します(mysqli docs)。または、AFAIAAがより有用なエラー処理(例外と戻り値の混在)を持つPDOを調べることもできます。
これを処理するには、コード内に1つのポイントが必要です。フロントコントローラのようなものがあれば、そこに置くことができるかもしれません。または、独自のカスタム例外ハンドラを作成して、必要なものを実現することができます(set_exception_handler)。
最も簡単で最悪の解決方法は、すべてのエラーをキャッチして解析するカスタムエラーハンドラを作成し、それに応じて行動することです(適切な情報を記録したDBエラーページにリダイレクトする可能性があります)。しかし、私はこれが最も汚れた解決策だと言ったのですか?