Как использовать PDO для функций, специфичных для базы данных?

Мне нужно использовать определенные функции в MySQL, которые я не уверен, что доступен в других вариантах БД. Например.,

SELECT DATE_SUB(mydate, INTERVAL 5 DAY) AS foo FROM table

Какова наилучшая практика для подобных случаев при использовании PDO?

Редактировать:

Я хочу спросить, как я могу убедиться, DATE_SUB также будет работать во всех разновидностях БД, поддерживающих PDO?

0

Решение

Как я могу убедиться, что DATE_SUB также будет работать во всех вариантах БД, поддерживающих PDO?

Ты не можешь

Если вы хотите слой, независимый от базы данных, посмотрите на доктрина

5

Другие решения

PDO абстрагирует связь с вашей базой данных, но ничего не делает для операторов SQL, кроме добавления поддержки подготовленных операторов для всех СУБД.

Специфические функции СУБД (например, DATE_SUB() в MySQL) и версии SQL, следовательно, подходят для этой конкретной СУБД (например, MySQL), но не эмулируются для других СУБД (например, сервер MS SQL).

Цитировать PHP / PDO руководство:

PDO обеспечивает уровень абстракции доступа к данным, что означает, что независимо от того, какую базу данных вы используете, вы используете одни и те же функции для выдачи запросов и извлечения данных. PDO не обеспечивает абстракцию базы данных; он не переписывает SQL и не эмулирует отсутствующие функции. Вы должны использовать полноценный слой абстракции, если вам нужен этот объект.

2

По вопросам рекламы [email protected]