Если вы хотите написать свой собственный слой БД, я бы предложил вам:
- Используйте заполнители, если вы этого еще не сделали. Они также добавляют безопасность.
- Использование bindParam / bindValue с типом значения (например, BOOLEANS не существует в SQLite, но работает, если связано с PARAM_BOOL) ...
- Используйте хранимые процедуры из MySQL, создайте совпадающие имена в PostgreSQL и определите их в SQLite с помощью sqliteCreateAggregate / sqliteCreateFunction.
- Выполните все проверки параметров в PHP, потому что SQLite не будет делать никаких (например, проверять переменные даты) ...
- Используйте InnoDB для MySQL для получения транзакций.
Примечание: Поддерживая эти совершенно разные RDBM, вы превращаете базу данных в просто хранилище данных. Имейте в виду, что SQLite очень ограничен. У него нет собственных типов данных, сохраняемых из числа / строки. Например. не хватает обработки дат и интервалов, и так далее. Все три базы данных поддерживают транзакции, которые важны для целостности данных, когда целостность поддерживается вне БД.
Редактировать: Удалено упоминание о триггерах MySQL, которые доступны для 5.0.