2010-06-20 127 views
1

可能重複:
PHP PDO vs normal mysql_connect通過函數vs對象訪問數據庫,區別?

所以在我的申請,我通過一個函數命名db_connect訪問數據庫();.很簡單,它提供了必要的登錄信息,並通過mysql_connect和mysql_select_db打開了一個數據庫連接。

現在我工作了,我發現領導程序員使用PDO。花式。但是,它看起來或多或少像我以前使用的同一事物的面向對象版本。

那麼按照我以前的方式進行操作,或者使用自動連接到數據庫的構造函數編寫類「db」,有什麼區別?

在這兩種情況下,我都必須連接到db /創建一個新的對象,無論哪種情況,它都佔用一行。

抽象出數據庫連接的本質是一個花哨的庫嗎?

我能想到的唯一的事情是,有於二OO版本的析構函數,這意味着我不會有在編寫「db_close()」 ......

埃杜-MA-指示泄我! (Please'm)

回答

4

無論您的數據庫庫是功能性還是面向對象本身都不是真正相關的,但PDO非常現代化,並且與簡單的舊的mysql_connect()和配合體相比具有許多優勢,最重要的是使參數化查詢注射不可能。

此外,PDO支持a whole lot more database platforms

從架構的角度來看,OOP方法也很有意義,它不僅僅是裝飾:您創建一個PDO對象,這是您的數據庫連接。多個對象=多個連接。將結果集包裝到一個對象中 - 提供所有函數來獲取行,跳過,倒帶等......也是非常合乎邏輯的。

如果我要爲一個新項目選擇一個數據庫包裝,我肯定會通過mysql_*()與PDO一起去。

+0

感謝您的想法,Pekka :) – 2010-06-20 14:33:59

+0

+1 PDO絕對是您的選擇。有更多的學習曲線在mysql _ *()上,但是如果沒有其他的參數化查詢,它是值得的。 – 2010-06-20 14:38:30