我使用PHP開發Web應用程序並使用MySQL作爲數據庫。我想了解準備好的陳述的用法,並且只是採取我的第一步。使用PREPARE命令(SQL)與PDO或mysqli函數
據我所知,準備語句主要到:
增加查詢的效率(預解析,緩存執行計劃,客戶端和服務器之間的二進制數據傳送)
確保防止代碼注入攻擊(不完全清楚這一點,但我認爲我有一個基本的瞭解)
(可能還有其他r,使用爲好)
的問題是,
爲什麼不使用MySQL提供的PREPARE語句,讓手在你準備語句,然後使用這些在你的PHP應用程序,無論是PDO或mysqli的?更好的是,使用這些準備好的語句來製作存儲過程,並只將這些語句暴露給PHP程序員?
通過這種方式,數據庫程序員可以分離/處理進行正確查詢的實際負擔。 PHP程序員可以完全只關注應用程序的實現和優化。
我不會預見我將很快使用的數據庫中的任何更改。 MySQL滿足所有要求。但爲了保持我的應用程序清潔和數據庫不可知,我可以使用PDO。或堅持程序編碼,並做mysqli
這是一個有效/經過試驗和測試的方法去建設一個應用程序?
謝謝
哈哈,你問題中幾乎所有的假設都是假的:) 1.如你所見,效率比真實更能想象。 2.至於安全性,這只是逃避的另一種方式,並非真正的巨大差異。 Mysqli也有面向對象的接口,PDO不會讓你輕鬆地交換數據庫引擎。 – 2011-02-17 14:01:46