我剛剛在PHP中使用類,我剛剛意識到,在我的大多數類方法中,我需要做一些mysql查詢。我有另一個類來處理我的連接和查詢,但我應該如何去從其他類調用該類?如果我的所有類都依賴於我的數據庫類,那麼這種類型是否會破壞使用類的目的?如何在其他類中運行數據庫類方法?
回答
這通常與辛格爾頓或者工廠模式解決了......
當你需要使用數據庫,你搶奪應用程序的數據庫對象:
$db = Site::getDb(); // singleton
$db->exec('update t set i = i + 1');
getDb返回一個靜態實例。
或:
$db = Db::getDb('dsn'); // factory
$db->exec('update t set i = i + 1');
如果它存在,或者爲該DSN新的DB手柄返回一個靜態實例...
+1,尼斯的答案,但你不是指'Db :: getDb()'而不是'Site :: getDb()'? – 2010-01-14 04:54:26
對不起,我仍然在學習這個東西,據我所知,一個單身人士是用於連接部分,如果連接已被調用/製作,那麼它使用該連接,否則它創建一個新的權利?所以我的主要問題是基於我到目前爲止,我有一個會話類爲我設置和獲取會話變量,而不是使用PHP的默認設置和獲取會話功能,我將它們包裝在一個類中,以便我可以更改在路上使用任何類型的緩存系統。我也有一個數據庫類,它將建立連接並具有查詢的方法。我 – JasonDavis 2010-01-14 18:52:31
看到它的方式是我需要訪問所有其他類中的數據庫和會話類,我只是想知道這是否正常?比方說,我決定建立一個不同的網站,如果我嘗試使用「論壇」類,它將無法正常工作,除非我也帶上我的數據庫和會話類。我認爲這是好的,但我是一個總是新手與類和類似的 – JasonDavis 2010-01-14 18:54:26
- 1. Android,運行其他類的方法
- 2. 運行其他類的主要方法
- 3. 在這個其他類中執行其他類的方法wpf
- 4. 如何執行其他類的方法
- 5. 如何使用其他數據類型的參數重載方法運行?
- 6. 如何在當前類中的其他類中使用方法
- 7. Java類未能正確運行來自其他類的方法
- 8. 如何在同一文件的其他類中使用其他類方法?
- 9. 如何爲所有其他類實現數據庫類?
- 10. 如何使用其他類的方法?
- 11. 如何在其他類方法中使用類函數作爲參數
- 12. 如何調用方法在其他類其他類並將它傳遞給主
- 13. 在Scrapy類中定義其他方法
- 14. TestNG多測試類 - 運行其他類
- 15. 如何訪問類中的其他類方法(PHP)
- 16. 如何確保靜態方法/屬性在其他類中的所有其他靜態屬性之前運行
- 17. 如何在其他類中調用類?
- 18. JPA數據庫類方法
- 19. 使用其他類/方法的類
- 20. Android如何在其他類中運行OnUiThread?
- 21. 如何基於$ _POST方法數據運行PHP類函數?
- 22. php使用類功能,查詢其他類中的數據庫
- 23. 通行證方法與主要的方法在其他類
- 24. Java運行其他類的主要方法,當按下JButton時
- 25. 設置數據類型的其他數據庫,如Redis
- 26. 如何在其他類中調用另一個調用方法?
- 27. 如何在java的其他類中使用靜態方法
- 28. 如何在方法中使用其他類的枚舉?
- 29. yuidoc - 如何在其他文件中定義類方法
- 30. 如何在其他類中使用方法?
一些示例代碼,將有助於說明你想要做什麼。 – Chris 2010-01-14 04:52:44