2011-09-23 61 views
2

我已經創建了一個以非常基本的方式使用MySQL數據庫的項目。這意味着我只使用SELECT,INSERT,UPDATE和DELETE。沒有連接,沒有創建表格。大多數查詢都是SELECT,大多數情況下我只選擇一條記錄的某些行。應該總是使用MySQL的項目使用PDO?

我也很確定這個項目會一直使用MySQL。

現在我聽說過PDO,有些人似乎認爲使用它通常是一個好主意。根據php.net的說法,「PDO僅提供數據訪問抽象層」。

爲什麼總是使用MySQL的項目應該使用PDO有什麼原因嗎?任何理由在這樣的項目中使用PDO可能是一個壞主意?

+0

即使使用PDO,通常也無法避免在後臺使用特定於數據庫的事物。 PDO不抽象實際查詢,只抽取與數據庫連接和通信的方法。 –

回答

5

如果僅用於預準備語句和綁定參數,它總是一個好主意。

PDO支持不同的數據庫驅動程序,但不提供數據庫抽象,它只是提供一致的接口來訪問數據。使用它真的沒有什麼缺點,而且應該放棄這些功能。

+0

準備好的語句和綁定參數在mysqli擴展中完全可用。與使用mysql擴展的人的問題是,他們不打擾如何正確地做事情,而不是該工具不容易獲得(即使只使用mysql,我完全支持使用PDO)。 – Lepidosteus

+0

'mysqli'雖然沒有命名參數,這實在是太愚蠢了 –

+0

感謝您的回答。爲什麼可以刪除mysql_ *函數? –

0

如果你沒有加入,你爲什麼首先使用關係數據庫?你只需要一個鍵/值存儲。

我通常不會將pdo用於MySQL特定的項目。

+0

我知道我只需要一個鍵/值存儲。但是我的提供者只允許我使用MySQL數據庫。因此,如果您知道一種更容易/更快速的PHP方式來存儲多年的微小數據位並快速訪問它們,請告訴我。 –

1

沒有理由不使用它。你也可以完全安全的不使用它,只要記住使用現代的擴展mysqli而不是mysql,並使用參數化查詢,而不是使用字符串連接和mysql_real_escape_string()的徹底混亂。

然而,您應該使用PDO的原因是,它會教會您如何使用接口數據庫,該數據庫將爲您提供在將來項目中的任何其他數據庫上工作的通用知識。換句話說,它會教你區分「從數據庫中提取一些數據」與「如何調用這個特定的數據庫」。 再次使用parameterized queries

0

首先,PDO主要用於面向對象的編程。它比MySQL更安全快速。由於您正在訪問CRUD的數據(創建,讀取,更新,刪除),因此它實際上比MySQL更高效。

我看到的唯一問題是安裝PDO驅動程序,但它現在安裝在大多數服務器上。

所以,如果你打算使用OOP,你必須使用PDO。