2011-03-15 60 views
0

使用PDOStatement而不是常規Mysql有什麼區別/優勢?使用PDOStatement的優勢?

+0

定義「常規MySQL」。 – David 2011-03-15 16:46:12

+0

@David:類似於:@mysql_query(「SELECT * FROM something」); – phpheini 2011-03-15 16:50:58

回答

2

我不確定你的意思是「普通的MySQL」,但我擔心你可能意味着字符串連接的查詢。因此,使用像PDO這樣的框架的最直接的優點是使用準備好的和參數化的查詢。這減少SQL注入的風險(但不一定消除它,所以不要以爲),並在同一時間,這取決於數據庫服務器上,可以讓服務器更好的緩存查詢執行計劃以提高性能。

在一個較高的水平,落後於使用這樣一個框架的理念是抽象的實際數據訪問組件部分出來的應用程序邏輯多一點,這始終是一個值得追求的目標的。基本上,不是直接與數據庫連接,而是主要與數據訪問框架接口(在這種情況下,它仍然可以使您與數據庫實現緊密結合,因此請注意),並讓它處理數據庫訪問。這種方法的主要優點之一是,如果您更改數據庫實現(例如從MySQL遷移到PostgreSQL),則無需更改代碼。您只需使用後者的PDO實現作爲前者的替代替代品。

+0

謝謝,它幫助了很多!但它只適用於PHP 5,不是嗎? – phpheini 2011-03-15 17:05:26

+0

@phpheini:根據PDO頁面(http://www.php.net/manual/en/intro.pdo.php)是這樣的話,是的。是有道理的,因爲PDO是非常面向對象的PHP沒有真正做到這一點,直到第5版。 – David 2011-03-15 17:07:36