我想知道重複使用PDO db連接多次是正確的嗎?執行後重新使用PDO連接?
例如,我在我的控制器中設置它,然後將它作爲類的構造函數中的參數傳遞,調用相同的連接(通過使用類似於get_Database的函數),儘管類中的所有函數都是正確的甚至將它作爲另一個類構造中的參數傳遞以繼續使用相同的連接?
或者我應該重新打開某個連接?
我能夠通過簡單傳遞來實現它,但是我不太確定這是否會在上線時表現良好。
我想知道重複使用PDO db連接多次是正確的嗎?執行後重新使用PDO連接?
例如,我在我的控制器中設置它,然後將它作爲類的構造函數中的參數傳遞,調用相同的連接(通過使用類似於get_Database的函數),儘管類中的所有函數都是正確的甚至將它作爲另一個類構造中的參數傳遞以繼續使用相同的連接?
或者我應該重新打開某個連接?
我能夠通過簡單傳遞來實現它,但是我不太確定這是否會在上線時表現良好。
是的,您應該重新使用連接。
或者我應該重新打開某個連接?
打開新連接的唯一原因是連接到另一個數據庫。否則,在整個單一腳本中只能使用一個連接。
爲了達到這個目的,嘗試和避免在整個應用程序中使用靜態單例很重要,而要了解dependency injection來設計代碼,以便將每個功能或類別共享相同的PDO實例。
但是我不太確定這是否會在上線時表現良好。
作爲commented,如果你重新打開連接的時候,這將是一個很多慢。
有許多依賴注入的在那裏,那麼幾乎可以肯定是見仁見智,但我喜歡Auryn。瞭解它應該可以幫助您設計能夠更輕鬆地共享單個PDO實例的代碼。
是的,這是好的,它比連接數據庫好多次。 的documentation甚至建議使用到PHP腳本/應用程序調用之間的打開的連接:
許多Web應用程序將作出對數據庫服務器的持久連接中獲益。持久連接在腳本結束時未關閉,但在另一個腳本使用相同憑據請求連接時緩存並重新使用。持久連接緩存可以避免每次腳本需要與數據庫通信時建立新連接的開銷,從而導致更快的Web應用程序。
它不僅推薦它。建立聯繫是一個相對緩慢的過程。始終在整個單一腳本中重複使用連接 – RiggsFolly