我需要使用MySQL中的特定功能,我不确定其他数据库版本是否可用。如,
SELECT DATE_SUB(mydate, INTERVAL 5 DAY) AS foo FROM table
使用PDO时,此类案例的最佳做法是什么?
编辑:
我的意思是,我如何确保DATE_SUB
也适用于支持PDO的所有数据库风格?
答案 0 :(得分:5)
答案 1 :(得分:2)
PDO将抽象与数据库的连接,但除了为所有DBMS添加对预准备语句的支持之外,它不会对SQL语句执行任何操作。
因此,DBMS特定的功能(例如MySQL中的DATE_SUB()
)和SQL版本对于特定的DBMS(例如MySQL)来说很好,但是没有为其他DBMS(例如MS SQL服务器)模拟。
引用PHP / PDO manual:
PDO提供了一个数据访问抽象层,这意味着,无论您使用哪个数据库,都可以使用相同的函数来发出查询和获取数据。 PDO不提供数据库抽象;它不会重写SQL或模拟缺少的功能。如果需要该功能,则应使用完整的抽象层。