2015-10-17 47 views
0

我需要在MySQL中使用特定的功能,我不確定是否可用於其他數據庫風格。例如,如何將PDO用於數據庫特定的功能?

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

什麼是使用PDO時,這樣的情況下,最好的做法呢?

編輯:

我的意思問的是,我怎麼能保證DATE_SUB也將在支持PDO所有DB口味工作?

+0

PDO應該是怎樣讓你的數據庫語句任何容易一點/簡單或任何你似乎會問? – samayo

+0

你可以使用'$ pdo-> query(「Your sql」)',我不確定那是你想要的。但它的工作。 – mcklayin

+1

這是一個措辭很差的問題,它不能理解,投票結束 – samayo

回答

5

我該如何確保DATE_SUB也可以支持所有支持PDO的數據庫風格?

你不行。

如果你想要一個獨立於數據庫層,看Doctrine

2

PDO將抽象與數據庫的連接性,但除了爲所有DBMS添加對預處理語句的支持之外,它不會爲SQL語句執行任何操作。

DBMS特定功能(例如MySQL中的DATE_SUB())和SQL版本因此適用於該特定DBMS(例如MySQL),但不適用於其他DBMS(例如MS SQL服務器)。

引述PHP/PDO manual

PDO提供一個數據訪問抽象層,這意味着,無論你正在使用的數據庫,您可以使用相同的功能發出查詢和取數據。 PDO不提供數據庫抽象;它不會重寫SQL或模擬缺少的功能。如果你需要這個設施,你應該使用一個完整的抽象層。