2012-05-04 99 views
3

當我在寫與PDO和MySQL的PHP​​代碼,我總是會創建連接,當我需要他們職責範圍內,像這樣:如何組織函數內數據庫連接的處理?

result pseudo_function() { 
    create and open connection 
    do stuff 
    close connection 
    return result 
} 

現在,我開始在C編程,我已經看到指針是一個有趣的將整個連接作爲參數傳遞給函數的方式。我想知道是否更好地傳遞函數之間的連接,直到整個用戶請求被提供。

澄清:對於一個用戶請求,可能會有1-5個調用函數,然後打開數據庫,獲取數據,執行某些操作,關閉並返回。

如果你保持連接打開,它也會使性能明智嗎?

+1

只需通過使用一個參數DB連接到函數。 PHP通過引用傳遞對象,有點像一個指針。 – dqhendricks

回答

3

我所見過的大多數PHP代碼的「標準習慣用法」似乎是「打開連接並保持打開狀態」。

php.net似乎在此刻將下降,但是這兩個環節可能很有趣:如果你正在運行

Apache,也許mod_dbd可能是一個很好的解決方案:

這裏有沒有關閉您的連接的影響商量好了:

3

最好保持連接打開並對該連接執行5次操作,而不是每次打開新連接。

您還可以使用單例存儲庫模式延遲加載數據庫;版本庫僅打開一次連接,在下次調用時它將返回一個緩存結果。

2

如果您使用PHP開發Web應用程序,那麼一旦打開數據庫連接並在腳本終止時關閉數據庫連接就很常見(並且我認爲這是最有效的方法)。在其他事情完成時保持連接打開並不會產生任何開銷或根本不需要任何操作,但每次都重新連接。