Вы обнаружите, что некоторые базы данных хранят типы данных по-разному, например, MySQL хранит логические значения как 1 и 0, а postgres сохраняет их как 't' и 'f'.
Пока ваши классы баз данных осознают необходимость преобразования данных, у вас все должно быть в порядке, вероятно, 96,3482% каждодневного CRUD будут работать очень хорошо по всем направлениям.
Даже если вы создаете классы базы данных, которые напрямую вызывают PDO, вы можете позже добавить некоторую логику для преобразования данных или изменения запроса.
Вы можете использовать слой абстракции базы данных ADOdb . (есть то, чего жаждут растения)
Я бы посоветовал убедиться, что ваши клиенты действительно дерьмо говорят о том, какую базу данных им нужно запустить, прежде чем вы потратите много времени на разработку функциональности, которая вам может не понадобиться.