我有一個網頁,有一些mysql查詢, 我必須在每個查詢之後啓動新的數據庫連接和數據庫關閉,或者更有效地在代碼頂部啓動一個數據庫連接並關閉腳本底部? 謝謝!PHP/MySQL:爲每個查詢創建新的連接?
回答
從不爲每個查詢創建一個新的連接;這是非常浪費的,並會使MySQL服務器負擔過重。
在腳本的頂部創建一個連接就足夠了 - 所有後續查詢將使用該連接直到頁面結束。您甚至可以在include()
版本的腳本中使用該連接,並在其中調用mysql_connect()
調用。
希望他與PDO連接,而不是'mysql_ *':'$ dbh = new PDO($ dsn,$ user,$ password);' – webbiedave 2012-03-08 21:18:27
@Bojangles仍然是PHP的新手,這對我非常感興趣。所以我有一個數據庫類與__CONSTRUCT功能使數據庫連接,分配給公共$連接。隨後我總是通過執行$ database-> connection-> query(「」)來進行調用。但我猜測我應該(在實例化類之後,並通過連接到數據庫),只需執行$ database-> query(「」);是? – 2014-06-18 18:56:33
我必須做錯了什麼,因爲在實例化$ database = class database();我試圖不建立連接並直接進入$ database-> query(「」),但它不起作用,儘管我的__CONSTRUCT被設置爲進行連接 – 2014-06-18 21:20:11
只創建一個連接。您甚至不必手動關閉它。
是否意味着如果您使用的是mysql_pconnect(),那麼您必須手動關閉連接? – 2012-03-08 21:17:20
是的,你應該。 – ThiefMaster 2012-03-08 21:51:19
不幸的是,你不能 – 2012-03-08 22:06:26
我更喜歡創建一些名爲Database
的類,它在創建時將使用mysqli(OOP版本的mysql)創建數據庫連接。
這樣我就不用擔心了,我有一個靜態類可以訪問數據庫。
class MyAPI {
private static $database = false;
public static function GetDatabase() {
if (MyAPI::$database === false) {
MyAPI::$database = new Database(credentials can go here)
}
return MyAPI::$database;
}
}
現在用你的API和數據庫的includsion可以訪問數據庫和它的初始化代碼您的系統沒有圍繞取決於程序的哪一部分你的文件正在運行,數據庫/連接被充塞如果不需要,將不會被創建(僅在被調用之前)。
只是爲了好玩我也喜歡在我的Database
類的功能,將執行查詢並返回結果,這樣我就不必在我的代碼,一遍又一遍具有相同的while
循環再次取決於我打這些電話的位置。
我也忘了回答你的問題。沒有多個連接!它的baaaad。
多連接更適合安全和跟蹤。 如果您要通過前後臺之間的防火牆進行定義,將會出現超時定義,因此單個連接將成爲問題。 但是,如果您的Web服務器與mysql在同一主機上,則單個連接將更有效。
- 1. 每個查詢都有一個新的sql連接?
- 2. 每個查詢的新連接或所有查詢的一個連接? (CommandBehavior.CloseConnection與CommandBehavior.Default)
- 3. 如何自動調用MySQL中每個新連接的查詢?
- 4. 通過psycopg2創建連接查詢
- 5. 從左外連接查詢創建表
- 6. php&mysql創建連接查詢
- 7. 爲每個用戶連接MySQL查詢爲單行
- 8. 重新創建一個大的複雜查詢與LINQ中的左外連接
- 9. Visual Studio創建一個查詢連接2個或3臺
- 10. 創建一個連接到子查詢的Rails 3作用域
- 11. mvc5創建新的查詢
- 12. 查詢爲每個數據包創建一個標識符
- 13. 爲什麼持久性PDO連接會與每個請求建立新連接?
- 14. 爲什麼ActiveRecord爲每個連接發出一個單獨的查詢?
- 15. Android是否爲每個http請求創建連接?
- 16. 如何在Flask中爲每個請求創建pymongo連接
- 17. 需要SQL查詢來創建連接在同一個表
- 18. 在每個單一的非查詢或整個連接之前打開連接?
- 19. 每條消息創建新的TCP連接的性能影響
- 20. socket.io每個連接創建多個套接字
- 21. MySQL的查詢(根據連接更新每一行)
- 22. phpmysql查詢腫瘤學評估工具
- 23. 每次查詢後關閉MySQL連接
- 24. 如何每次在C#中收到新連接時創建一個新線程?
- 25. 我應該保持連接還是應該每次創建新連接?
- 26. 是否爲每個UDP連接打開一個新套接字?
- 27. 連接兩個查詢集
- 28. 查詢整個連接表
- 29. SQL查詢 - 多個連接
- 30. 連接兩個查詢
你如何看待自己? – 2012-03-08 21:14:43