Первое, что вам нужно спросить себя, хотите ли вы одинаково обрабатывать все ошибки базы данных. Если вы не можете подключиться к вашей базе данных, это серьезная ошибка и может указывать на то, что ваш сервер базы данных не работает. В этом случае вы можете захотеть отправить вам какое-то срочное предупреждение (если вы еще не отслеживаете свою БД другим способом). Если запрос не выполняется из-за синтаксической ошибки SQL, это, вероятно, признак того, что вы не экранируете входные данные или в вашем коде есть ошибка. В этом случае вы, вероятно, захотите зарегистрировать как можно больше информации, чтобы позже можно было отладить / разобрать проблему.
Итак, кроме этого, первое, что вам, вероятно, понадобится, - это обернуть ваши функции mysqli, чтобы вы могли перехватывать различные ошибки и обрабатывать их так, как вам нужно (либо написав свой собственный класс БД, либо используя свои собственные функции) - в документации по PHP приведены примеры того, как вы можете начать это делать ( mysqli docs ). Или вы можете взглянуть на PDO, который AFAIAA имеет более полезную обработку ошибок (смесь исключений и возвращаемых значений).
Тогда вам потребуется одна единственная точка в коде, чтобы справиться с этим. Если у вас есть какой-то фронт-контроллер, вы можете установить его там. Или вы можете написать свой собственный обработчик исключений для достижения того, что вам нужно ( set_exception_handler ).
Самым быстрым и грязным решением было бы написать свой собственный обработчик ошибок, чтобы перехватывать и анализировать все ошибки и действовать соответствующим образом (возможно, перенаправить на страницу ошибок db, в которой вся информация была зарегистрирована). Но я же сказал, что это было самое грязное решение, верно?