Отличить недоступную базу от ошибки запроса и восстановить правильное подключение

Фактические данные получены через SQLSRV от отдельного SQL Server. Созданные программой учебные таблицы удалены после чтения.

Наблюдаемый результат программы
НаблюдениеРезультат
Имя ошибочной базы заранее свободнода
Подключение к отсутствующей базе вернуло falseда
Первоначальная диагностика сохраненада
У диагностики был текст причиныда
База после исправленияphpmanual149
server_info подтверждает ту же базуда
Учебные таблицы не создавалисьда
Строки и дополнительные наблюдения
{
    "missing_database": "phpmanual149_missing",
    "failed_connect_type": "bool",
    "failure_diagnostics": [
        {
            "SQLSTATE": "28000",
            "code": 18456
        },
        {
            "SQLSTATE": "42000",
            "code": 4060
        }
    ],
    "raw_messages_were_nonempty": true,
    "recovered_context": {
        "database_name": "phpmanual149"
    },
    "current_database": "phpmanual149"
}

Рядом сохранены result.json с данными и metrics.json с проверками.